我正在使用webpack4捆绑我的nodejs应用程序。我想创建一个包,其中甚至包括我在应用程序中使用过的所有库的node_modules代码,但我想从包中排除一个文件appConfig.js,该文件对我的应用程序进行了一些配置。
但是我面临的问题是在应用程序中排除自定义模块。尽管我设法从捆绑包中排除了appConfig.js文件,但问题是相对路径,在生成的捆绑包中的各种其他文件中,我需要使用appConfig.js文件。
我只是在webpack中使用外部配置从捆绑中排除appConfig.js
webpack.config.js
externals: /configs\/appConfig/
假设我的nodejs应用中存在file1.js,file2.js和file3.js和appConfig.js。
每个文件都要求要求appConfig.js具有基于其文件位置路径的相对路径。
modules/module1/file1.js => require("../../configs/appConfig.js")
modules/module2/sub-module/file2.js => require("../../../configs/appConfig.js")
modules/file3.js => require("../configs/appConfig.js")
configs/appConfig.js
如果您在上面注意到,在不同的文件中,require路径有所不同,但是在生成的包中(现在说bundle.js),这是一个单独的文件,除了appConfig.js之外,所有内容都捆绑在一起,所有它们仍在使用相同的相对路径,实际上是导致问题的原因,因为这些路径现在无法正确解决。
因此,在webpack配置中有一种可能的方法,它使我们能够正确解决需要的w.r.t捆绑包,从而使其始终能够正确解析。