【问题标题】:Bundling with webpack from script从脚本与 webpack 捆绑
【发布时间】:2018-03-12 18:38:27
【问题描述】:

我正在使用 webpack 将我的 Javascript 文件捆绑到我的项目中:

webpack --config myconfig.webpack.config.

从命令行可以。

建筑

但是我想创建一个构建任务,我使用的是jake,所以为了创建捆绑包,我需要从 Javascript 调用 webpack

我在网上找不到API,我基本上需要这样的东西:

// Jakefile.js

var webpack = require("webpack");

desc('This is the default build task which also bundles stuff.');
task('default', function (params) {
    webpack.bundle("path-to-config"); // Something like this?
});

我如何做到这一点?

尝试 1

我尝试了以下方法:

// Jakefile.js

var webpack = require("webpack");
var config = require("./webpack.config.js");

desc('This is the default build task which also bundles stuff.');
task('default', function (params) {
    webpack(config);
});

webpack.config.js 是我的 webpack 配置。当我从命令行使用并引用该文件时,捆绑包已正确创建。但是当使用上面的代码时它不起作用。当我执行它时,没有错误,但没有发出捆绑包。

【问题讨论】:

  • 那么webpack("--config", "path-to-config")?
  • 我认为你不需要 bundle 我似乎可以让我的工作与 webpack(config)...使用 webpack 3。
  • 我使用的是 webpack 3.5.5 而webpack(config) 什么也没做。抱歉打错了,我的尝试中没有bundle

标签: javascript node.js webpack jake


【解决方案1】:

在您的 尝试 1 中,您似乎通过将配置传递给 webpack 方法来使用 webpack 的 Node.js API。如果你采用这种方法,webpack 方法将返回一个编译器对象,你需要正确处理它。 例如,

import webpack from 'webpack';

var config = {}; // Your webpack config
var wpInstanceCompiler = webpack(config);
wpInstanceCompiler.run(function(err, stats) {
  if (stats.hasErrors()) {
    console.log(stats.toJson("verbose");
  }
});

这是您通过 Node.js API 执行 webpack 配置的方式。除非您运行编译器实例,否则不会生成输出。

【讨论】:

    【解决方案2】:

    这对我也有用:

    var webpack = require("webpack");
    var lib = require(path.join(__dirname, "webpack.config.js"));
    
    desc('Builds the projects and generates the library.');
    task('default', function() {
        webpack(lib, function() { 
            console.log("Bundle successfully created!"); 
        });
    });
    

    【讨论】:

      猜你喜欢
      • 2020-04-27
      • 2018-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-04
      • 2017-05-11
      • 2020-02-24
      相关资源
      最近更新 更多