我正在嘗試在我的webpack項目中包含模塊化第三方庫(PhysicsJS)。該庫對AMD和CommonJS友好,並且具有我想要訪問的格式良好的子模塊。但它主要是通過require.config()
中的packages
定義規範爲RequireJS構建的,因此入口點不是標準index.js
。相反,入口點是physicsjs.js
。解決webpack中的外部子模塊依賴
換句話說,我似乎無法弄清楚如何配置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')
是不是一個解決方案。