svg.js
这个包无法正常运用
追寻仓库发现,这这一步仍是正常的
![[✔️]cocos creator 2.x无法加载.js后缀的npm包 [✔️]cocos creator 2.x无法加载.js后缀的npm包](https://www.6hu.cc/wp-content/uploads/2023/05/1684960655-d38a435d101bade.webp)
到这一步就发现把.js后缀给干掉了
![[✔️]cocos creator 2.x无法加载.js后缀的npm包 [✔️]cocos creator 2.x无法加载.js后缀的npm包](https://www.6hu.cc/wp-content/uploads/2023/05/1684960666-d26a79d42cff60b.webp)
中心处理的这一步,代码加密了,或许认为这是个js
文件,所以就强行把.js
去掉了,没有考虑到有些npm package竟然也以.js
结束
![[✔️]cocos creator 2.x无法加载.js后缀的npm包 [✔️]cocos creator 2.x无法加载.js后缀的npm包](https://www.6hu.cc/wp-content/uploads/2023/05/1684960677-0f257d5da86bfe2.webp)
解决方案:
- 自己把这个package改名,在npm上从头发布一下,项目中运用改名后的package
- 假如运用的是webpack打包,能够在装备中加入externals,也便是将svg.js不扫除,代码直接打进bundle里边,运转的时候不会从外部require,也就防止了这个问题
cc-plugin便是运用的externals,将.js结束的package不扫除,直接打进bundle里边
webpack externals
在 Webpack 中,externals
是一个装备项,用于指定哪些模块不该被打包进输出的 bundle 文件中,而应该作为外部依靠引进。这能够显著减小 bundle 文件的大小,加快网页加载速度,同时也能够防止代码重复。
在装备文件中,externals
能够是一个目标、函数,或许一个字符串。其一般的形式如下:
module.exports = {
// ...
externals: {
'jquery': 'jQuery',
'react': 'React',
// ...
},
};
其中,键是需求扫除的模块名,值是模块在大局环境中的变量名。例如,上面的装备表明将 jquery
和 react
扫除在打包范围之外,而在运转时从大局环境中获取它们。
还有一种更高效的用法是运用正则表达式来匹配模块名,例如:
module.exports = {
// ...
externals: {
'/^lib/': 'commonjs2 lib',
// ...
},
};
这个装备将一切以 lib/
开头的模块都扫除在打包范围之外。
externals
的另一个常见用处是在不同的构建中共享某些模块。例如,咱们能够将大部分代码打包成一个 vendor bundle,然后再将一些常用的库(如react
、lodash
等)扫除在构建范围之外。这样能够缩短编译时刻,同时也能使得这些库被多个进口共享,从而减小网页加载时刻。
需求留意的是,运用 externals
需求特别慎重,因为一旦装备不妥,或许会导致程序运转犯错或许依靠模块无法加载。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。