我试图找到一种在npm中使用本地模块的好方法,或者一种构造大型应用程序的方法,以便将其打包成模块,这些模块可能在单独的存储库中,也可能不在存储库中。
每个本地模块都有自己的package.json和安装的依赖项。
我的要求是这些模块是用ES6编写的,并且只作为正在构建的主要项目的一部分进行编译(所以我没有很多依赖项是独立地不断构建的)。
项目结构
/root
/main-module
... main js files <- entry point
webpack.config.js
package.json
/module-1
... module 1 js files
package.json
/module-2
... module 2 js files
package.json
/module-3
... module 3 js files
package.json我目前正在通过在我的package.json中指定一个本地文件来研究如何使用本地模块,如下所示:
...
"dependencies": {
"lodash": "^4.17.10",
"module-1": "../module-1",
"module-2": "../module-2",
"module-3": "../module-3",
"normalize.css": "^8.0.0"
}
...您可以在这里看到整个项目:https://github.com/SamStonehouse/webpack-local-modules-test
我使用webpack与babel-加载程序,它不需要任何额外的设置,以使用这种形式,甚至观察模块文件的变化和重建时,他们是完整的,这是惊人的。
问题:一旦这已经构建了房源包含了4次以上的构建包,每一个模块需要它,即使他们都需要相同的版本和所有的源代码是在同一时间编译。
有人有办法解决这个问题吗?
或以类似方式捆绑本地模块的另一种方式。
发布于 2018-05-03 21:18:48
更改每个模块,使其成为对等依赖而不是直接依赖项。因此,在package.json文件中,更改以下内容:
"dependencies": {
"lodash": "^4.17.5"
}至:
"peerDependencies": {
"lodash": "^4.17.5"
}https://stackoverflow.com/questions/50163956
复制相似问题