在webpack config中提供模块定义
问题描述:
我以编程方式调用webpack。在我称之为的时候,我有一个设置对象,我想将它作为一个模块包含在webpack中。这可能吗?在webpack config中提供模块定义
我正在寻找类似于DefinePlugin的东西,但我想定义一个模块,而不是自由变量。
我的应用程序代码,app.js
,看起来是这样的:
var settings = require('settings');
console.log('Build number is', settings.buildNumber);
我的WebPack亚军,webpack-runner.js
:
var settings = {
buildNumber: 100
};
// Can I pass settings into webpack config such that
// app.js will be able to access it with require('settings')?
var config = {
entry: "./app.js",
output: {
path: __dirname,
filename: "build.js"
}
};
webpack(config, function(err, stats) {
console.log(stats.toString());
});
目前,我发现这样做的唯一方法是保存我的设置到一个文件,然后为该文件的路径设置一个别名。但是我想避免保存一个文件,以便稍后让webpack打开它。
答
是的,只需要在您的设置文件中。下面的例子。
// settings.js
module.exports = {
buildNumber: 100
};
// webpack.config.js
var settings = require('./settings'); // settings.buildNumber => 100
var config = {
entry: './entry.js',
output: {
path: __dirname,
filename: 'build.js'
}
};
webpack(config, function(err, stats) {
console.log(stats.toString({
colors: true,
modules: true,
chunkModules: true
}));
});
我想我的问题还不清楚,所以我编辑了它。我正在寻找一种方法将设置变量传递到我的webpack配置中,然后通过“require('settings')”在app.js中访问它。 – Andrew
@Andrew为什么不只需要app.js和webpack.config.js中的文件? –
我的设置是以编程方式生成的,所以没有文件。我目前的解决方法是将设置保存到一个文件,然后需要它们 - 但这正是我想要避免的。 – Andrew