在webpack配置中提供模块定义

And*_*rew 7 javascript dependency-management webpack

我以编程方式调用webpack.在我调用它的时候,我有一个设置对象,我想将其作为webpack中的模块包含在内.这可能吗?

我正在寻找类似于DefinePlugin的东西,但我想定义一个模块,而不是自由变量.

我的应用代码app.js看起来像这样:

var settings = require('settings');
console.log('Build number is', settings.buildNumber);
Run Code Online (Sandbox Code Playgroud)

我的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());
});
Run Code Online (Sandbox Code Playgroud)

目前,我发现这样做的唯一方法是将我的设置保存到文件,然后将别名设置为文件的路径.但我想避免保存文件只是为了让webpack稍后打开它.

Nei*_*ner -1

是的,只需在您的设置文件中添加即可。下面的例子。

// 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
  }));
});
Run Code Online (Sandbox Code Playgroud)