gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 21:18:23 25 4
gpt4 key购买 nike

我正在根据用户输入创建动态生成的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com