大多数情况下是的,但这也取决于库的用途。 Angular-cli 仍然存在与 3rd 方库集成的一些问题。在他们正确修复之前,我可以给你一个技巧。假设您想在代码中使用 _ 或 lodash。所以我会给你我的工作代码场景 -
安装 lodash
npm install lodash --save
typings install lodash --ambient --save
在此之前,请确保您在全局范围内安装类型
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/index.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 项目中使用了巨大的 3rd 方库。希望对你也有帮助
编辑:
如果您没有为您的第三方库获取任何 npm。创建一个assets 文件夹
在您的 src 文件夹下。然后您可以为js、css 和images 添加单独的文件夹。
把你的第三方js放到js文件夹里面。
然后你必须像这样在index.html 中引用 js 文件:
<script src="assets/js/your_js.js"></script>
现在,当您执行ng build 或ng serve 时,它会自动使用您的assets/js 更新public 文件夹。希望您了解整个场景:)