如何在角度cli中包含npm包

时间:2017-04-20 06:46:05

标签: angular angular2-routing

直到现在我从角度种子中练习了我的ANgular 2项目 here

在使用这个项目的时候,我习惯在system.config.js中包含所有第三方库,如下所示

 map: {
   'ng2-file-upload': 'npm:ng2-file-upload'
 },
 packages: {
  ng2-file-upload: {
    defaultExtension: 'js'
  }

这对我来说非常好。现在我正在使用角度cli而且我很困惑包含在其中。

在angular-cli.json中,

 "scripts": [
     ?????
  ],

任何人都可以帮帮我。谢谢

2 个答案:

答案 0 :(得分:1)

您将依赖项存储在node_modules文件夹中。当您需要它们时,可以使用import语句将它们导入到文件中。编译成JS时,import通常会替换为require

当您在浏览器中执行代码时,需要加载程序从node_modules加载这些文件,并且此类加载程序是SystemJS。了解更多为什么需要SystemJS here。 SystemJS需要知道模块的路径,这就是你需要向system.config.js添加依赖项的原因。

但是,angular-cli使用webpack模块bundler,它有自己的内置加载器。当webpack捆绑文件时,它会解析路径并将它们内联到生成的包中。这就是为什么在使用angular-cli时无需在任何地方添加路径的原因。

我只是尝试将ng2-tag-inputangular-cli一起使用。一切正常。我刚刚将以下内容导入主模块:

...
import {TagInputModule} from 'ng2-tag-input';
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    ...
    TagInputModule, BrowserAnimationsModule
  ],

并安装了@angular/animations。以下代码段工作正常:

@Component({
  template: '<tag-input [(ngModel)]='items'></tag-input>',
  ...
})
export class AppComponent {
  items = ['Pizza', 'Pasta', 'Parmesan'];
}

您还需要安装@angular/animations

答案 1 :(得分:0)

我没有使用过SystemJS,但是:

是的,您可以将您的库添加到scripts

"scripts": [
    "pathToLibray"
]

但是如果你有一个为Angular构建的npm包,你可以在不导入的情况下使用它。它会从node_modules

自动加载

希望我能提供帮助:)