我正在尝试创建一个脚本来包装一些现有的 TypeScript 功能。例如,我的文件夹结构看起来像
./src/library.ts
./scripts/runner.ts
我有一个自定义 ts 配置文件:
{
"compilerOptions": {
"target": "ESNext",
"module": "ESNext",
"outDir": "./build",
"importHelpers": false,
"strict": false,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"moduleResolution": "node"
},
"exclude": ["test"]
}
脚本test.ts如下
import yargs from "yargs"
import library from "../src/library"
library(1);
库文件如下
const library = (c: number) => {
console.log(2);
};
export default library;
我调用它如下
npx tsc --project tsconfig-scripts.json; node build/scripts/test.js
我收到以下错误
SyntaxError: Cannot use import statement outside a module
按照说明添加 "type": "module" 到 package.json 会出现以下错误。
internal/process/esm_loader.js:74
internalBinding('errors').triggerUncaughtException(
^
Error [ERR_MODULE_NOT_FOUND]: Cannot find module '/Users/gregreynolds/src/Development/orchestra-slackbot/build/src/library'
检查构建文件夹确实表明该模块确实位于预期的位置。
有没有办法运行这个脚本?我发现的例子都不是这个确切的用例。