javascript - 如何从 .js 文件而不是 webpack.config 配置和运行 webpack

标签 javascript webpack

我正在根据用户输入创建动态生成的 webpack 模块。

Standard static way在配置中指定文件夹或文件并使用 babel-loader 在其上运行 webpack 可以正常工作。

var path = require('path');

var webpack = require('webpack');
var CopyWebpackPlugin = require('copy-webpack-plugin');

var dir_js = path.resolve(__dirname, 'js');
var dir_html = path.resolve(__dirname, 'html');
var dir_build = path.resolve(__dirname, 'build');

module.exports = {
    entry: path.resolve(dir_js, 'main.js'),
    output: {
        path: dir_build,
        filename: 'bundle.js'
    },
    devServer: {
        contentBase: dir_build,
    },
    module: {
        loaders: [
            {
                loader: 'babel-loader',
                test: dir_js,
            }
        ]
    },
    plugins: [
        // Simply copies the files over
        new CopyWebpackPlugin([
            { from: dir_html } // to: output.path
        ]),
        // Avoid publishing files when compilation fails
        new webpack.NoErrorsPlugin()
    ],
    stats: {
        // Nice colored output
        colors: true
    },
    // Create Sourcemaps for the bundle
    devtool: 'source-map',
};

但是如果我想动态创建模块,我不能使用静态配置文件。 所以我谷歌了一下我怎么能用一些特定的配置直接从 JS 文件调用 webpack。我找到了 THIS

有调用选项的地方:

var webpack = require("webpack");    
// returns a Compiler instance
webpack({
    // configuration
}, function(err, stats) {
    // ...
});

所以我创建了一些非常简单的 index.js:

var webpack = require('webpack');
webpack({
    entry: './main.js',
    output: {
        filename: 'bundle.js'
    }
}, function(err, stats) {
    // console.log(stats);
    console.log(err);
});

不幸的是,当我通过 node index.js 调用此文件时,没有任何反应,甚至 console.log(err) 输出为 null 从这一点来看,我没有发现任何其他有用的东西。

所以我希望如果有人有这方面的经验并且可以告诉我我做错了什么。或者 alternativly 给我建议如何创建它的另一种方式

最佳答案

通常,最好在 webpack 配置中使用完整路径,即使配置是动态的:

entry: path.resolve(__dirname, 'main.js');

(对于 output.filename 也是如此)

关于javascript - 如何从 .js 文件而不是 webpack.config 配置和运行 webpack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38852162/

相关文章:

javascript - 如何在调用它的函数末尾执行回调?

javascript - VueJS动态类

webpack - Node模块包如何导入依赖?

javascript - Angular/webpack 站点中未定义 jQuery

javascript - JS 或 Jquery 创建唯一的 span ID

java - 使用 GSON 将 java.time.LocalDateTime (java 8) 序列化为 js Date 的最佳实践

javascript - 动态调整文本大小以填充 div

reactjs - 使用 ESlint 在 TypeScript React 项目中使用 SVG 的正确方法

javascript - 我如何在 React 组件中将 postcss-bem 与 css-modules 或 postcss-js 一起使用

python - 如何让Django看到Vue.js编译生成的dist/static下的文件?