我正在将一个应用程序从common angular 2传输到angular cli
现在我正在尝试如何将不在npmbower上的第三方库(如orbitcontrols.js)导入到我的应用程序中。
我在https://github.com/angular/angular-cli/wiki/3rd-party-libs上发现,导入npm支持的库似乎并不难。
其他图书馆怎么样?
有可能吗?
版本:
角cli 1.0.0-beta.9

最佳答案

基本上是的,但这也取决于图书馆的用途。Angular CLI在第三方库集成方面仍然存在一些问题。在他们把它修好之前,我可以给你一次机会。假设您想在代码中使用_lodash。所以我会给你我的工作代码场景-
安装lodash

npm install lodash --save
typings install lodash --ambient --save

在此之前,请确保在全局范围内安装typings
npm install typings -g

然后在angular-cli-build.json中,确保它保持这样
module.exports = function(defaults) {
  return new Angular2App(defaults, {
    vendorNpmFiles: [
      ...
      'lodash/**/*.js'
    ]
  });
};

在system-config.ts中:
/** Map relative paths to URLs. */
 const map: any = {
   'lodash': 'vendor/lodash/lodash.js'
 };

 /** User packages configuration. */
 const packages: any = {
   'lodash': {
     format: 'cjs'
   }
 };

在您的SRC/NOTEX.html中添加这行(这是怪异的修复)
<script src="/vendor/lodash/lodash.js" type="text/javascript"></script>

现在在您想使用lodash的组件中,这样写
declare var _:any;

@Component({
})
export class YourComponent {
  ngOnInit() {
     console.log(_.chunk(['a', 'b', 'c', 'd'], 2));
  }
}

它对我有效:)。我通过angular cli在我的angular2项目中使用了大量的第三方库。希望对你也有帮助
编辑:
如果你没有为你的第三方库获得任何NPM。创建assets文件夹
在您的src文件夹下。然后可以为jscssimages添加单独的文件夹。
把你的第三方JS放在js文件夹中。
然后您必须以如下方式引用index.html中的js文件:
<script src="assets/js/your_js.js"></script>

现在,当您执行ng buildng serve操作时,它将使用您的public自动更新assets/js文件夹。希望你能理解整个场景:)

关于typescript - Angular CLI中的第三方库不在npm上,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38354088/

10-14 17:55
查看更多