需要 Webpack 包——returns 空对象?
Require Webpack bundle -- returns empty object?
更新 -- 相关:
我让 webpack 编译一个简单的 module.exports = "asdfasdf"
到 foo.js
在节点 server.js
我有 var foo = require("./foo.js")
当我 console.log(foo)
我得到一个空对象 {}
我做错了什么??
我的 webpack 配置:
module.exports = {
entry: "./test.js",
output: {
filename: "./foo.js"
},
target: "node",
module: {
loaders: [
{
exclude: /(node_modules|bower_components)/,
loader: "babel?presets[]=react,presets[]=es2015"
}
]
},
devtool: "#source-map"
};
我认为您缺少 libraryTarget
设置。将 libraryTarget: "commonjs2"
添加到配置中应该可以解决问题。 See the webpack-docs about it.
在我的例子中,我在使用 babel-loader 和 Babel 6 时遇到了同样的问题。
即使我设置
"libraryTarget": "commonjs2"
我有结果:
const foo = require('some-module');
console.log(foo) // is {}
const bar = require('some-module').default;
console.log(bar) // is default export of 'some-module'
如果你想:
const foo = require('some-module');
console.log(foo) // is default export of 'some-module'
您可以使用:
babel-plugin-add-module-exports
更新:
webpack 的作者不建议为此使用 babel-plugin。
Webpack 3 有选项 output.libraryExport(现在没有详细的文档)
我这样试过
output.libraryExport: 'default'
它解决了问题。
我遇到了同样的问题,因为为了开玩笑,我需要@babel 插件。我用 babel-6 编写了整个项目。现在我在@mbraint 的建议下再次尝试。它奏效了!所以对于 webpack 输出 属性 你需要像下面这样的东西:
output: {
path: path.join(__dirname, 'dist'),
filename: '<output-file-name>.js',
libraryTarget: 'commonjs2',
libraryExport: 'default',
library: '<ProjectName>'
},
使用我展示的命名案例。快乐编码✌
更新 -- 相关:
我让 webpack 编译一个简单的 module.exports = "asdfasdf"
到 foo.js
在节点 server.js
我有 var foo = require("./foo.js")
当我 console.log(foo)
我得到一个空对象 {}
我做错了什么??
我的 webpack 配置:
module.exports = {
entry: "./test.js",
output: {
filename: "./foo.js"
},
target: "node",
module: {
loaders: [
{
exclude: /(node_modules|bower_components)/,
loader: "babel?presets[]=react,presets[]=es2015"
}
]
},
devtool: "#source-map"
};
我认为您缺少 libraryTarget
设置。将 libraryTarget: "commonjs2"
添加到配置中应该可以解决问题。 See the webpack-docs about it.
在我的例子中,我在使用 babel-loader 和 Babel 6 时遇到了同样的问题。 即使我设置
"libraryTarget": "commonjs2"
我有结果:
const foo = require('some-module');
console.log(foo) // is {}
const bar = require('some-module').default;
console.log(bar) // is default export of 'some-module'
如果你想:
const foo = require('some-module');
console.log(foo) // is default export of 'some-module'
您可以使用: babel-plugin-add-module-exports
更新:
webpack 的作者不建议为此使用 babel-plugin。
Webpack 3 有选项 output.libraryExport(现在没有详细的文档)
我这样试过
output.libraryExport: 'default'
它解决了问题。
我遇到了同样的问题,因为为了开玩笑,我需要@babel 插件。我用 babel-6 编写了整个项目。现在我在@mbraint 的建议下再次尝试。它奏效了!所以对于 webpack 输出 属性 你需要像下面这样的东西:
output: {
path: path.join(__dirname, 'dist'),
filename: '<output-file-name>.js',
libraryTarget: 'commonjs2',
libraryExport: 'default',
library: '<ProjectName>'
},
使用我展示的命名案例。快乐编码✌