解决Webpack中的外部子模块依赖性

安德鲁

我想包括一个模块化的第三方库(PhysicsJS)到我的WebPack项目。该库对AMD和CommonJS友好,并具有我要访问的格式正确的子模块。但是,它主要通过RequireJS中的packages定义规范为RequireJS构建require.config(),因此入口点不是标准的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')不是一个解决方案

安德鲁

解决方案是将别名声明两次,首先是完全匹配(使用尾随$),然后再声明为常规匹配(不使用尾随$)。所以我的配置现在看起来像这样:

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

双向同步(解决时间依赖性)

来自分类Dev

解决Unity中的依赖性

来自分类Dev

如何确保角度模块依赖性得到解决?

来自分类Dev

Maven配置文件在子模块中看不到依赖性

来自分类Dev

解决haskell数据记录中的循环依赖性

来自分类Dev

Perl-使用指定子目录中的所有模块并自动解决其依赖性

来自分类Dev

解决代码中模块之间的相互依赖性

来自分类Dev

Webpack:表达模块依赖性

来自分类Dev

Play框架中的依赖性冲突解决

来自分类Dev

无法解决对本地模块的依赖性

来自分类Dev

处理节点中子模块上的局部依赖性的最佳方法是什么?

来自分类Dev

模块之间具有循环依赖性的“未解决的导入”

来自分类Dev

无法解决Grails 3中渲染插件的依赖性

来自分类Dev

无法解决依赖性

来自分类Dev

Haskell-解决循环模块依赖性

来自分类Dev

需要解决安装依赖性

来自分类Dev

如何解决指针数组中的数据依赖性?

来自分类Dev

解决正交模块的依赖性

来自分类Dev

Golang子项目或子模块依赖性

来自分类Dev

如何解决转速依赖性

来自分类Dev

需要解决安装依赖性

来自分类Dev

解决代码中模块之间的相互依赖性

来自分类Dev

在Dojo中交换AMD模块依赖性

来自分类Dev

在RequireJS配置中预定义AMD模块依赖性

来自分类Dev

解决厨师依赖性

来自分类Dev

Angular模块依赖性

来自分类Dev

Angular模块依赖性

来自分类Dev

解决盐粒的依赖性

来自分类Dev

解决冲突的依赖性