不能导入或需要webpack生成的文件?

我用webpack打包使用这个configuration的几个文件。

const path = require('path'); const webpack = require('webpack'); const nodeExternals = require('webpack-node-externals'); module.exports = { entry: ['./jstasklib/task.js', './jstasklib/worker.js'], output: { path: __dirname + '/dist', filename: 'app.js', library: 'jstasklib' }, target: 'node', externals: [nodeExternals()], devtool: 'source-map', module: { loaders: [ { test: /.js$/, loader: 'babel-loader', exclude: /node_modules/, query: { presets: ['es2015'], }, }, ], }, }; 

如果我然后启动一个节点terminal并需要文件,它只是给了我一个空的对象:

 node var foo = require('./dist/app.js'); console.log(foo); -> {} 

但是,如果我console.log(jstasklib)一个console.log(jstasklib)在app.js的底部和运行node ./dist/app.js我得到这个输出,似乎应该让我至less在前面的例子中导入工人:

 {default: [Function: Worker]} 

那么给了什么? 我的webpackconfiguration是否错误? 什么是适当的设置能够从webpack生成的文件中导入的东西?

也许你在你的app.js文件中使用export default,默认情况下这不是默认设置。 尝试将输出libraryTarget设置为commonjs2

https://webpack.github.io/docs/configuration.html#output-librarytarget

 output: { path: __dirname + '/dist', filename: 'app.js', library: 'jstasklib', libraryTarget: 'commonjs2' },