NCC / TS-NODE 中的奇怪错误阻止构建 TypeScript 项目

问题描述

我正在尝试使用 NCC 转译和捆绑我的打字稿项目,但出现了一个奇怪的错误,我似乎无法理解,也无法在 google 上找到任何参考。我正在从命令行运行 NCC:

yarn run ncc build ./test.ts -o build/

注意:“test.ts”的内容只是:console.log('Hello!');

并得到以下输出:

ncc: Version 0.26.2
ncc: Compiling file index.js
Error: Module build failed (from ./node_modules/@vercel/ncc/dist/ncc/loaders/ts-loader.js):
Error: Could not load TypeScript compiler with NPM package name `/home/edu/repos/some-project/node_modules/@vercel/ncc/dist/ncc/typescript.js`. Are you sure it is correctly installed?
    at Object.loader (/home/edu/repos/some-project/node_modules/@vercel/ncc/dist/ncc/loaders/ts-loader.js.cache.js:1:352078)
    at /home/edu/repos/some-project/node_modules/@vercel/ncc/dist/ncc/index.js.cache.js:1:3258300
    at /home/edu/repos/some-project/node_modules/@vercel/ncc/dist/ncc/index.js.cache.js:1:2210953
    at eval (eval at create (/home/edu/repos/some-project/node_modules/@vercel/ncc/dist/ncc/index.js.cache.js:1:1140143),<anonymous>:11:1)

TypeScript 和 NCC 都是本地安装的。我已经尝试了两者的全球安装,结果是一样的。

如果我尝试使用 ts-node 做同样的事情,我也会得到一个错误:

yarn run ts-node test.ts

yarn run v1.22.0
$ /home/edu/repos/WB-DataCollectorService/node_modules/.bin/ts-node test.ts
/home/edu/repos/WB-DataCollectorService/node_modules/typescript/lib/typescript.js:7943
        An_index_signature_parameter_type_cannot_be_a_union_type_Consider_using_a_mapped_o
                                                                                          

SyntaxError: Unexpected end of input
    at wrapSafe (internal/modules/cjs/loader.js:931:16)
    at Module._compile (internal/modules/cjs/loader.js:979:27)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1035:10)
    at Module.load (internal/modules/cjs/loader.js:879:32)
    at Function.Module._load (internal/modules/cjs/loader.js:724:14)
    at Module.require (internal/modules/cjs/loader.js:903:19)
    at require (internal/modules/cjs/helpers.js:74:18)
    at loadCompiler (/home/edu/repos/some-project/node_modules/ts-node/dist/index.js:186:20)
    at create (/home/edu/repos/some-project/node_modules/ts-node/dist/index.js:190:28)
    at Object.register (/home/edu/repos/some-project/node_modules/ts-node/dist/index.js:162:21)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

这是我的 package.json:

{
  "name": "some-project","version": "1.0.0","main": "src/index.ts","license": "MIT","dependencies": {
    "@vercel/ncc": "^0.26.2","async-mqtt": "^2.6.1","chalk": "^4.1.0","graphql-request": "^3.4.0","is-ip": "^3.1.0","lowdb": "^1.0.0","mem": "^8.0.0","moleculer": "^0.14.11","mqtt": "^4.2.6","nats": "^1.4.12","node-opcua": "^2.28.3","rxjs": "^6.6.3","typescript": "^4.1.3","winston": "^3.3.3","ts-node": "8.10.2"
  },"devDependencies": {
    "@types/lowdb": "^1.0.9","@types/node": "^14.14.16"
  },"scripts": {
    "dev": "ts-node src/index.ts","debug": "node --inspect -r ts-node/register src/index.ts"
  }
}

我尝试了许多不同版本的 typescript 和 ncc,以及 package.json 中的许多其他更改,但它总是相同的。

与我的 tsconfig.json 相同,没有任何更改有所不同,无论如何这是当前的 tsconfig.json:

{
  "compilerOptions": {
    "outDir": "build","target": "ES2019","lib": [
      "es6","dom","es2017","es2018","es2019"
    ],"esModuleInterop": true,"module": "commonjs","moduleResolution": "node","experimentalDecorators": true,"emitDecoratorMetadata": true,"resolveJsonModule": true
  }
}

我正在运行节点版本 12.19.0。

我的想法不多了,不知道还能在哪里查看,其他项目(至少有八个)使用 TypeScript、NCC、ts-node 等完美运行......相同的 tsconfig.json 文件和构建命令...

预先感谢您的帮助!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)