我有以下结构(编辑):
workspace
|- thegame
|- node_modules
| package.json
| bs-config.json
|- src
| tsconfig.json
|- app
| game.model.ts (<-- here I would like to import game-engine)
|- game-engine
|- dist (after the local build)
| package.json
| tsconfig.json
|- lib
| index.ts (the actual engine module)
我在&#34; thegame&#34;中运行应用程序(Angular2) &#34; npm start&#34;。
我应该在thegame / src / tsconfig.json中添加什么,以便我可以在game.model.ts中执行以下操作?
import { Engine } from 'game-engine';
我试图将游戏引擎符号链接到#34; to&#34; thegame / node_modules&#34;但当我用lightserve运行项目时,它会给出#34; 404 GET / game-engine&#34;
我想开发与Web应用程序分离的引擎。我也对任何其他提示如何实现这一点感兴趣。
的Angular 2快速入门答案 0 :(得分:2)
由于您使用的是使用SystemJS和NPM作为其基础的Angular快速入门工具包,并且您已经了解了如何描述目录布局,因此您需要执行以下步骤。
在workspace/thegame
中打开一个终端并运行
npm install --save ../game-engine
这将告诉npm从磁盘上的该位置安装软件包,作为thegame
应用程序的标准依赖项。
现在我们只需要告诉SystemJS新添加的依赖项所在的位置。 SystemJS使用显式配置(而不是递归目录遍历)来定位依赖项。这是好的事情,但由于我们使用的是NPM而不是JSPM,我们需要手动设置它。
幸运的是,它相当于添加到systemjs.config.js
文件中的一行,根据快速入门,该行应位于src
目录的thegame
子目录中。
将以下内容添加到配置对象的"map"
属性中:
"game-engine": "npm:game-engine/dist/index.js"
最终文件看起来像
SystemJS.config({
paths: {
"npm:": "node_modules/"
},
map: {
"game-engine": "npm:game-engine/dist/index.js",
"@angular/core": "npm:@angular/core/bundles/core.umd.js",
// etc.
}
// etc.
});