Angular不支持某些库,例如Clappr,HashWords等。我想在Angular中使用它们,就像它们是Angular库一样。那么我们如何才能使Angular支持外部库/模块呢?
答案 0 :(得分:2)
1)将软件包安装到您的项目中:npm i clappr
2)将类型声明导入Angular应用:app.component.ts
答案 1 :(得分:1)
在index.html中添加库文件。可以通过在组件类外部进行此类声明declare var Clappr: any;
来在库中使用库公开的变量。
答案 2 :(得分:1)
这是我在Angular 9项目中的安装方式:
npm install clappr
angular.json
中: "architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"scripts": [
"node_modules/clappr/dist/clappr.min.js"
],
"styles": [
"./src/styles.css"
]
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
"scripts": [
"node_modules/clappr/dist/clappr.min.js"
],
"styles": [
"./src/styles.css"
]
}
}
index.d.ts
并将clappr声明为:declare module 'clappr';
import * as Clappr from 'clappr';
答案 3 :(得分:0)
答案 4 :(得分:0)
如果该库具有ES6模块,则可以将其导入。
如果该库只是一个JS文件,则可以通过在angular.json中的scripts数组上添加js文件路径,从而像在index.html上使用<script>
标签导入文件一样添加文件。 / p>
如果类型可用,则可以将它们添加到typescript.json的类型数组中
这是完成所有操作的指南。
https://nitayneeman.com/posts/how-to-add-third-party-library-in-angular-cli/
如果您不喜欢将第三方库用作全局变量,则可以将它们变成不可移植的。这是一个涉及更多的过程,但是非常整洁。
这也是该指南:
https://hackernoon.com/angular-providers-how-to-inject-3rd-party-library-af4a78722864