我想尝试require在webpack构建中的模块,如果找不到该文件,则不做任何事情,不要抛出错误等.
我试过这样做:
try {
const local = require('./config-local.js');
extend(config, local);
} catch (err) {
// do nothing here
}
Run Code Online (Sandbox Code Playgroud)
基本上我想要做的是使用本地配置扩展配置对象(如果找到该文件但是不仅仅是不扩展它).
即使需要包含在try/catch子句中,Webpack也会抛出一个模块丢失的错误.
如何告诉webpack忽略它?
Bre*_*non -1
我认为稍微不同的方法可能会给你想要的结果。您提到有问题的文件是应用程序配置;webpack.config.js我会在而不是在应用程序代码中处理这个问题。在那里你require将遵循普通的nodeJS规则而不是webpack的静态分析。您可以尝试/捕获 require 语句并找到应用程序将使用的结果配置,然后使用DefinePlugin. IMO 使用DefinePlugin(使用静态文件或环境变量中的数据)这样是将配置注入到 webpack 构建的应用程序中的更常见模式。
// load config data
const defaultConfig = require("default-config.json");
let localConfig = {};
try {
localConfig = require("config-that-may-not-exist.json");
} catch (err) {}
const actualConfig = Object.assign(defaultConfig, localConfig);
// ...later, in plugins part of config:
plugins: [
new webpack.DefinePlugin(actualConfig)
]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1004 次 |
| 最近记录: |