angular - 导入 cytoscape.js 作为 ESM 模块
问题描述
我在 Angular 10 应用程序中使用cytoscape.js 。cytoscape.js 的文档说
要在带有 npm 的 ESM 环境中使用 Cytoscape.js(例如带有 ESM 包的 Webpack 或 Node.js):
import cytoscape from 'cytoscape';
import cytoscape from 'cytoscape';
我像在我的打字稿文件中一样导入它。
但我看到警告
CommonJS 或 AMD 依赖项可能会导致优化救助。
所以我去node_modules\cytoscape\dist
文件夹。我看到有很多可导入的文件。
我给console.log
他们每一个。然后我看到我正在使用cytoscape.cjs.js
这意味着我正在使用 commonjs 文件。
我可以手动复制cytoscape.esm.min.js
和导入它,但有更好的方法吗?最好跟踪我的所有依赖项package.json
解决方案
我前一阵子用谷歌搜索过,发现还没有对打字稿的支持。所以我只是做了和你一样的导入,并将 cytoscape 添加到 angular.json:projects.yourprojectname.architect.build.options.allowedCommonJSDependencies,如下所示:
"allowedCommonJsDependencies": [
"cytoscape",
"cytoscape-popper",
"lodash",
"lodash/cloneDeep"
]
推荐阅读
- clojure - 如何让 Clojure 使用多个库?什么是 Clojure 等价于 Java 中的 folder.*?
- sql-server - SQL Server Reporting Service (SSRS) - 使用两列中的值计算百分比
- rust - 与返回 Ok() 分支相比,Infallible Result 的意义何在?
- python - requirements.txt 中的未知包 - andas、cipy
- powershell - 如何使用powershell重命名批处理文件?
- php - 如何制作 laravel 8 laravel/ui auth 多个不同的表?
- package - vite可以打包nodejs后端项目吗?
- php - 拉拉维尔 | 如果未验证,则重定向以验证电子邮件
- python - for循环中的dataframe输出是正确的,但是当csv输出到一个文件夹再读取时,出现了一些奇怪的新元素
- java - 如何修复无法调用连接是mysql中的空错误