我在我的服务器中使用webpack-dev-middleware来编译这样的javascript:
if (development){
app.use(webpackMiddleware(webpack({
// webpack options
// webpackMiddleware takes a Compiler object as first parameter
// which is returned by webpack(...) without callback.
entry: {
dashboard: path.join(__dirname, 'scripts/dashboard.jsx'),
tasks: path.join(__dirname, 'scripts/tasks.jsx')
},
output: {
path: __dirname + 'dist',
filename: '[name].bundle.js',
// no real path is required, just pass "/"
// but it will work with other paths too.
},
resolve: {
extensions: ['', '.js', '.jsx']
},
module: {
loaders: [
{ test: /\.jsx$/, loader: "jsx" }
]
}
}
),
{
stats: {
colors: true
}
}));
}
在开发过程中一切正常,我可以在我的视图中包含这些包。但是在制作中我不能包括它们,因为它们不会被构建成'dist'。此文件夹始终为空。我做错了什么? 有人有想法吗?
最诚挚的问候 扬
答案 0 :(得分:7)
webpack-dev-middleware
不输出任何文件。如果要输出实际文件,则需要在express之外使用webpack
命令。您可以将webpack配置放入单独的文件中,并使用webpack
命令引用它,并在快速脚本中要求它访问它。
答案 1 :(得分:2)
如果要使用内存中的捆绑包,可以像这样使用流式文件:
var express = require('express');
var app = express();
var webpack = require('webpack');
var path = require('path');
var compiler = webpack(require('./webpack.config.js'));
app.use(require('webpack-dev-middleware')(compiler, {
noInfo: true,
publicPath: '/'
}));
app.use('*', function (req, res, next) {
var filename = path.join(compiler.outputPath,'index.html');
compiler.outputFileSystem.readFile(filename, function(err, result){
if (err) {
return next(err);
}
res.set('content-type','text/html');
res.send(result);
res.end();
});
});
app.listen(3000);
答案 2 :(得分:0)
await page.waitForSelector('div[class=QzVHcLdwl2CEuEMpTUFaj]')
中有一个可用选项。
webpack-dev-middleware
可以是布尔值,也可以是接收文件路径并输出布尔值的函数。参见documentation here
在这里,我正在使用一个函数,因此所有中间捆绑包都不会写入磁盘,而只会写入整个捆绑包:
writeToFile