有人可以解释为什么babel会编译以下内容:
import {resolve} from "path";
export const exportedConst = "value";
到:
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.exportedConst = undefined;
var _path = require("path");
var exportedConst = exports.exportedConst = "value";
如果我导出exportedConst
而没有导入任何其他模块:
export const exportedConst = "value";
它将其编译为:
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var exportedConst = exports.exportedConst = "value";
为什么会产生这条线? exports.exportedConst = undefined;
并像这样导出
var exportedConst = exports.exportedConst = "value";
这会导致IDE看到两个导出
也许这是智能问题,但它让我想到为什么babel这样做。
我正在使用:
或者如果你想在本地重现它,这里是一个快速的单行命令
mkdir stackoverflow-questin && cd stackoverflow-questin && npm init -y && npm install babel-cli babel-preset-env && echo 'import {resolve} from "path";\nexport const exportedConst = "value";' > index.js && npx babel index.js --out-file index.compiled.js --presets=env