我正在为一个小型项目提供Typescript镜头,或者我没有正确的tsconfig设置,或者Typescript只是以不同于babel.js世界中惯用的方式进行编译。
myPackage是一个npm库。 npm lib和客户端项目都应使用所有最新功能在nodejs 8.x下运行。
myPackage-index.ts:
export { default as updateTaskLog } from './updateTaskLog';
export { default as saveGitEvent } from './saveGitEvent';
myPackage已转译:
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var updateTaskLog_1 = require("./updateTaskLog");
exports.updateTaskLog = updateTaskLog_1.default;
var saveGitEvent_1 = require("./saveGitEvent");
exports.saveGitEvent = saveGitEvent_1.default;
clienProject-run.ts:
import {
saveGitEvent,
updateTaskLog,
} from 'myPackage';
run.js编译了:
const myPackage_1 = require("myPackage"); // what? why is a destructured import transpiled to this?
...
const eventId = await myPackage_1.saveGitEvent(event); // TypeError: myPackage_1.saveGitEvent is not a function
两个项目都使用完全相同的tsconfig.json设置:
{
"compilerOptions": {
"target": "ES2017",
"module": "commonjs",
"noImplicitAny": false,
"moduleResolution": "node",
"esModuleInterop": true,
"preserveSymlinks": false,
"types": [
"node"
]
}
}
为什么将Typescript分解销毁的命名导入转换为单个变量?
是否有任何建议可以使它转译并正确运行?