output.filename是必需的webpack

时间:2017-04-02 12:10:56

标签: node.js webpack

我尝试以下列方式进行webpack导出。我尝试将异步转换为同步(关于fs.readdir)以获取目录中的总文件。

const webpack = require('webpack');
const async = require('async'); 
const path = require('path');
const fs = require('fs');
var fileList = [];

var promiso = new Promise(function(res, rej) {
   fs.readdir(__dirname + "/imports/components", function(err, files)   {
      files.forEach(function(file) {
          console.log("file", file);
          fileList.push(file);
      });

      let config = {
          entry: {
             'myPages': fileList[0]
          },
          module: {
              loaders: [
                  // Javascript: js, jsx
                 {
                    test: /\.jsx?$/,
                    loader: 'babel-loader',
                    query: {
                        presets: ['es2015', 'react']
                    }
                }
            ]
        },
        output: {
            path: path.resolve(__dirname, 'dist'),
            filename: './bundler.js'
        },
    }
    res(config)
  })
});

promiso.then(function(mess) {
  console.log("-------------------------mess", mess);
  module.exports = mess;
});

我收到以下错误

'output.filename' is required, either in config file or as --output-filename

1 个答案:

答案 0 :(得分:0)

在这里你应该返回promise本身,然后在其他任何地方使用它。因为require无法正常运行。使用require()加载的节点中的模块将同步加载,require return无法异步加载任何值。

module.exports = promise

在另一个文件中使用如下

require('path-to-file').then( (mess) => {
    // Use mess
}).then(null, (err) => {
    // Error handling    
})