我刚刚升级到babel v7
和building
我的项目,我看到它只是构建我的index.js
而不是该文件中使用的任何导入。
我希望该构建包含所有导入,以便可以使用构建的文件。
{
"presets": [
[
"@babel/preset-env", {
"targets": {
"node": "current"
}
}]
]
}
import FetchApi from './utils/fetch'
export const aFunc = function () {FetchApi()}
export default aFunc
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.aFunc = void 0;
var _fetch = _interopRequireDefault(require("./utils/fetch"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const aFunc = function () {
(0, _fetch.default)();
};
exports.aFunc = aFunc;
var _default = aFunc;
exports.default = _default;
有问题的行在这里: var _fetch = _interopRequireDefault(require("./utils/fetch"));
答案 0 :(得分:0)
babel <src-file>
将仅转换单个源文件。您可以通过指定目录而不是单个源文件babel <src-dir> -d build
transpile all source files in a directory。这将生成一堆已编译的文件,并且您的require语句将解析为已编译的模块。
如果您希望将所有源文件合并到一个输出文件中,则还可以使用babel的--out-file
标志,但它可能无法满足您的要求(仅cat
个已转储的文件到单个输出文件中;您的require语句将仍然存在,仍将指向外部文件,并且在运行时失败。您可能需要像webpack / rollup / parcel这样的打包程序才能将require语句转换为内联模块,从而使您可以生成单个,自包含的,可编译的构建工件。