我正在使用Angular -cli创建一个新的Angular 2项目。我试图添加"baconjs"npm项目,但没有成功。
我在这里遵循指示:https://github.com/angular/angular-cli/wiki/3rd-party-libs
npm和typings安装工作查找。修改angular-cli-build.js文件会导致'vendor/baconjs/dist/Bacon.js'被安装到dist/目录下。但是,尝试import * as foo from 'baconjs'
会导致以下错误:
Cannot find module 'baconjs'.
我也试过...from 'baconjs/Bacon'
和...from 'baconjs/Bacon.js'
。我在我的system-config.ts中尝试了许多不同的咒语。这是我的当前版本:
const map: any = {
'baconjs': 'vendor/baconjs/dist'
};
/** User packages configuration. */
const packages: any = {
'baconjs': { main: 'Bacon', defaultExtension: 'js' }
};
我已经为'format'字段尝试了所有不同的值。我已经尝试过和没有defaultExtension。我试过很多东西。不行。
不可思议的是,当将System.import('baconjs/Bacon.js')
与坏的导入放在同一个文件的顶部时,它似乎工作得很好。所有systemjs配置都在做一些的事情。
嗯,看起来到处都在问类似的问题。哦。写入记录....
好了,这是在阅读了很多文档并玩了很多之后对我有效的方法。这些几乎与angular wiki上的underscore指令相同,但有一个重要的变化。
npm install baconjs --save
typings install baconjs --save --global
按照描述修改angular-cli-build和system-config文件,然后在服务文件的typescript文件中:
/// <reference path="../../../../../../typings/globals/baconjs/index.d.ts" />
import * as Bacon from 'baconjs';
区别在于导入行,而不是wiki中的declare var _;
。同样重要的是,/// <reference ...
行是文件中的第一行。