使用webpack进行转译时,常见的js默认导出无法正常工作

时间:2020-06-10 14:30:37

标签: javascript node.js webpack commonjs

我使用的是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不起作用

1 个答案:

答案 0 :(得分:0)

对我来说修复它的只是将库目标更改为 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;