Angular CLI 中不在 npm 上的第三方库
3rd Party Libraries in Angular CLI which are not on npm
我目前正在将应用程序从通用 Angular 2 转移到 Angular CLI
现在我想弄清楚如何导入第三方库,比如 orbitcontrols.js npm
或 bower
到我的应用程序。
我在 https://github.com/angular/angular-cli/wiki/3rd-party-libs 上发现导入 npm
支持的库似乎并不难。
其他图书馆怎么样?
有可能吗?
版本:
angular-cli 1.0.0-beta.9
我不熟悉 orbitcontrols.js 但我会假设它是一个全局对象。
将该文件放在 CLI 创建的 public
目录中。我建议将类似的东西分组,所以 public/js/orbitcontrols.js
.
然后您可以通过以下方式在 index.html
文件中引用该 js 文件:
<script src="js/orbitcontrols.js"></script>
大部分是,但这也取决于图书馆的用途。 Angular-cli 与第 3 方库集成仍然存在一些问题。在他们正确修复它之前,我可以给你一个破解。假设您想在代码中使用 _
of 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'
]
});
};
在你的系统中-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 项目中使用了大量的第 3 方库。希望对你也有帮助
编辑:
如果您没有为您的第三方库获取任何 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
文件夹。希望您了解整个场景:)
我目前正在将应用程序从通用 Angular 2 转移到 Angular CLI
现在我想弄清楚如何导入第三方库,比如 orbitcontrols.js npm
或 bower
到我的应用程序。
我在 https://github.com/angular/angular-cli/wiki/3rd-party-libs 上发现导入 npm
支持的库似乎并不难。
其他图书馆怎么样?
有可能吗?
版本:
angular-cli 1.0.0-beta.9
我不熟悉 orbitcontrols.js 但我会假设它是一个全局对象。
将该文件放在 CLI 创建的 public
目录中。我建议将类似的东西分组,所以 public/js/orbitcontrols.js
.
然后您可以通过以下方式在 index.html
文件中引用该 js 文件:
<script src="js/orbitcontrols.js"></script>
大部分是,但这也取决于图书馆的用途。 Angular-cli 与第 3 方库集成仍然存在一些问题。在他们正确修复它之前,我可以给你一个破解。假设您想在代码中使用 _
of 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'
]
});
};
在你的系统中-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 项目中使用了大量的第 3 方库。希望对你也有帮助
编辑:
如果您没有为您的第三方库获取任何 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
文件夹。希望您了解整个场景:)