webpack-dev-middleware不会将输出编译到文件夹中

时间:2014-11-10 13:36:20

标签: javascript node.js express webpack

我在我的服务器中使用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'。此文件夹始终为空。我做错了什么? 有人有想法吗?

最诚挚的问候 扬

3 个答案:

答案 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