网站搜索

如何从本地目录而不是全局运行 TypeScript


所以我有多个项目,每个项目使用不同类型的 TypeScript,所以我从全局卸载了它,并将其安装在项目本地,但当我运行 tsc 时,我收到一个错误:

tsc --version
internal/modules/cjs/loader.js:583
    throw err;
    ^

Error: Cannot find module 'C:\Program Files\nodejs\node_modules\typescript\bin\tsc'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)
    at Function.Module._load (internal/modules/cjs/loader.js:507:25)
    at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:743:3)

root@DESKTOP-N8OLDFM /cygdrive/c/msweb/studiolite
$

我确实将以下内容添加到了我的 PATH:

/cygdrive/C/msweb/studiolite/node_modules/typescript/bin

有什么想法吗?

答案#1

你可以在 package.json 的 scripts 中添加一个条目,不仅可以运行 tsc,还可以填写你想要的标准参数,例如:

"scripts": {
  "tsc": "tsc your args here"
},

然后使用

npm run tsc

那将运行来自 node_modules 的版本,而不是全局版本。

有关临时命令,请参阅 apokryfos 的 npx 回答。

答案#2

你可以使用 npx 来运行本地安装的可执行文件

示例:

npx tsc --version

如果你选择的包管理器是 yarn,那么运行 yarn tsc --version 也应该可以,但前提是你的 package.json 中没有名为 tsc 的脚本。