我想要的太多了:使用webpack捆绑angularjs应用程序,但是请参阅位于同一文件系统上不同位置的node_modules文件夹。
到目前为止我做了什么:
如何引用位于/ global / npm / App1 / node_module中的节点模块? 我是否必须在webpack.config.js中使用absolut路径?
答案 0 :(得分:0)
我认为您正在寻找的Webpack中的功能是resolve-modules
。这允许您添加可以使用的其他文件夹,而无需在其中添加路径,几乎就像它们在node_modules
文件夹中一样。
https://webpack.js.org/configuration/resolve/#resolve-modules
例如
const globalNpm = path.join(__dirname, 'global', 'npm', 'App1', 'node_module'),
resolve: {
modules: [
globalNpm
]
}
我发现使用path.join使你的webpack代码更有可能跨平台(windows,mac等)工作。上面示例中的路径可能有误,因为我可以从您的问题中获得您的文件夹结构。但是上面应该允许您直接从全局npm文件夹中获取模块。
请将以上功能主要用于大型项目和可以移动或在其他地方重复使用的文件,这样就不需要了
const module = require('../../../a-folder/../../fancycomponent')
另一方面 - 全局安装NPM软件包仅在一个应用程序中使用不是正常模式,可能导致问题,尤其是本地和CI / CD管道上的权限和版本控制。