sách gpt4 ai đã đi

javascript - 解决 webpack 中的外部子模块依赖

In lại 作者:行者123 更新时间:2023-11-30 12:14:01 25 4
mua khóa gpt4 Nike

我正在尝试将模块化第三方库 ( PhysicsJS ) 包含到我的 webpack 项目中。这个库是 AMD 和 CommonJS 友好的,并且有我想要访问的格式良好的子模块。然而,它主要是为 RequireJS 构建的,通过它在 require.config() TRONG packages 定义规范,所以入口点不是标准的 index.js。相反,入口点是 physicsjs.js.

换句话说,我似乎无法弄清楚如何配置 webpack 来解析库的主文件及其子模块。看起来如果库的入口点不是 index.js 并且它有子模块,那你就不走运了,我简直不敢相信这是正确的,所以我一定遗漏了一些东西。

那么,下面的语句怎么解决呢?

require('physicsjs'); // entry point
require('physicsjs/bodies/rectangle'); // submodule

我试过这个配置的变体:

resolve: {
modulesDirectories: [
'js/bower_components'
],
alias: {
'physicsjs': 'PhysicsJS/dist/',
// doesn't find physicsjs.js

'physicsjs': 'PhysicsJS/dist/physicsjs.js'
// doesn't find the submodules
}
},

目录结构如下所示:

+ js
- main.js
+ bower_modules
+ PhysicsJS
+ dist
- physicsjs.js // module entry point
+ bodies
- rectangle.js // desired submodule
+ lib
- MyModule.js

请注意,PhysicsJS 确实有整个库的缩小版本,如果没有其他选择,我会使用它,但我宁愿只加载我实际使用的内容。

此外,子模块本身使用 require('physicsjs'),因此调用 require('physicsjs/physicsjs') 不是解决方案.

1 Câu trả lời

解决方案是声明别名两次,第一次作为完全匹配(使用尾随 $),然后再次作为正常匹配(没有尾随 $)。所以我的配置现在看起来更像这样:

resolve: {
modulesDirectories: [
'js/bower_components'
],
alias: {
'physicsjs$': 'PhysicsJS/dist/physicsjs.js', // Exact match
'physicsjs': 'PhysicsJS/dist' // and again with a fuzzy match
},
},

关于javascript - 解决 webpack 中的外部子模块依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32923943/

25 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com