正如我在对您的问题的评论中所说,在 webpack 中处理配置的惯用方式是 with DefinePlugin
,因此在您的情况下,这意味着在您的 webpack 配置中进行配置处理。然后,Webpack 将自动就地处理您的配置变量的插值,您无需使用import
语句引入配置。就像是:
// webpack.config.js
const webpack = require("webpack");
const config = require("./process-config")
module.exports = {
// ...
plugins: [
webpack.DefinePlugin({
config
})
]
};
// app.js
if (config.SOME_CONFIG_VAR) {
// do work when SOME_CONFIG_VAR=true
}
话虽如此,另一种更符合您正在寻找的方法可能是使用val-loader
which 是一个加载器
执行给定的模块,并在构建时返回执行结果,此时该模块在包中是必需的
[来源]
使用val-loader
可能看起来像:
// webpack.config.js
module.exports = {
// ...
module: {
rules: [
{
test: /config.js$/,
use: [{ loader: "val-loader" }]
}
]
}
}
// config.js
const config = require("./process-config.js");
const JSON = require("json5");
module.exports = {
code: `module.exports = "${JSON.stringify(config)}"`
}
// app.js
const config = require("./config.js");
if (config.SOME_CONFIG_VAR) {
// do work when SOME_CONFIG_VAR is truthy
}