使用 webpack 转译时,常见的 js 默认导出不起作用
Common js default export doesn't work when transpiling with webpack
我正在使用 webpack 基本配置,当我使用从普通 js 导出的基本配置时,它不起作用。
webpack.config.js
var commonJsConfig = {
target: "node",
mode: "production",
output: {
filename: "hello.node.js",
libraryTarget: "commonjs",
},
};
module.exports = commonJsConfig;
当我这样做时:
src/index.js文件
function hello() {
console.log("hello");
}
module.exports = hello;
test.js
const hello = require("./dist/hello.node");
console.log(hello);
hello();
函数 hello 被打印成一个空对象,但是如果我这样做:
src/index.js文件
function hello() {
console.log("hello");
}
module.exports = { hello };
test.js
const hello = require("./dist/hello.node").hello;
console.log(hello);
hello();
效果很好
我想知道为什么会这样,我不明白为什么 module.exports = hello 不起作用
对我来说修复它的只是将库目标更改为 commonjs-module
,如下所示:
var commonJsConfig = {
target: "node",
mode: "production",
output: {
path: path.resolve(__dirname, "dist"),
filename: "basic-indexer.node.js",
libraryTarget: "commonjs-module",
},
};
module.exports = commonJsConfig;
我正在使用 webpack 基本配置,当我使用从普通 js 导出的基本配置时,它不起作用。
webpack.config.js
var commonJsConfig = {
target: "node",
mode: "production",
output: {
filename: "hello.node.js",
libraryTarget: "commonjs",
},
};
module.exports = commonJsConfig;
当我这样做时:
src/index.js文件
function hello() {
console.log("hello");
}
module.exports = hello;
test.js
const hello = require("./dist/hello.node");
console.log(hello);
hello();
函数 hello 被打印成一个空对象,但是如果我这样做:
src/index.js文件
function hello() {
console.log("hello");
}
module.exports = { hello };
test.js
const hello = require("./dist/hello.node").hello;
console.log(hello);
hello();
效果很好
我想知道为什么会这样,我不明白为什么 module.exports = hello 不起作用
对我来说修复它的只是将库目标更改为 commonjs-module
,如下所示:
var commonJsConfig = {
target: "node",
mode: "production",
output: {
path: path.resolve(__dirname, "dist"),
filename: "basic-indexer.node.js",
libraryTarget: "commonjs-module",
},
};
module.exports = commonJsConfig;