如何从本地目录而不是全局目录运行 TypeScript
Posted
技术标签:
【中文标题】如何从本地目录而不是全局目录运行 TypeScript【英文标题】:How to run TypeScript from local directory instead of global 【发布时间】:2019-10-27 04:25:04 【问题描述】:所以我有多个项目,每个项目都使用 diff 类型的 TypeScript,所以我从全局卸载并将它放在我的项目本地,但是当我运行 tsc 时出现以下错误:
$ tsc --版本 内部/模块/cjs/loader.js:583 抛出错误; ^ 错误:找不到模块 'C:\Program Files\nodejs\node_modules\typescript\bin\tsc' 在 Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15) 在 Function.Module._load (internal/modules/cjs/loader.js:507:25) 在 Function.Module.runMain (internal/modules/cjs/loader.js:742:12) 启动时(内部/bootstrap/node.js:283:19) 在 bootstrapNodeJSCore (内部/bootstrap/node.js:743:3) root@DESKTOP-N8OLDFM /cygdrive/c/msweb/studiolite $我确实在我的 PATH 中添加了以下内容:
/cygdrive/C/msweb/studiolite/node_modules/typescript/bin有什么想法吗?
【问题讨论】:
使用你的包管理器(Npm、Yarn 或任何你用来管理项目包的东西)运行tsc
。它会启动当前项目中安装的tsc
实例并忽略全局安装的实例(即您甚至不需要卸载它)。
@apokryfos - 我会将其发布为答案,而不是评论。
不幸的是,我必须运行 tsc 而不是 npx,因为我也在使用 WebStorm,所以我需要 Windows 中的所有内容来获取本地 tsc.exe
@born2net - WebStorm 不能使用 npx
或为你处理这个?这似乎令人惊讶。
应该有一个选项来指定 typescript 在 webstorm 中的位置。 phpStorm 中有一个,我认为这两个共享一个核心。只需尝试搜索选项
【参考方案1】:
您可以使用npx
运行本地安装的可执行文件
例子:
npx tsc --version
如果您选择的包管理器是 yarn
,那么执行 yarn tsc --version
也应该有效,但前提是您的 package.json 中没有名为 tsc
的脚本。
【讨论】:
感谢您的回答,这可能适用于命令行,但我还需要 WebStorm 来拾取 ./node_modules tsc .. 有没有办法告诉 env 中的所有内容来拾取 tsc具体路径? @born2net - 我想你可能想把它作为一个单独的、特定于 WebStorm 的问题来问。您提出的问题没有提到 WebStorm(并且 确实 显示了命令行示例),因此吸引了通用的命令行答案。一旦有了答案,就不适合更改问题。【参考方案2】:您可以在package.json
中向scripts
添加一个条目,不仅可以运行tsc
,还可以填写您想要的标准参数,例如:
"scripts":
"tsc": "tsc your args here"
,
然后使用
npm 运行 tsc这将运行来自node_modules
的那个,而不是全局的。
有关临时命令,请参阅apokryfos's npx
answer。
【讨论】:
以上是关于如何从本地目录而不是全局目录运行 TypeScript的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法让Windows 7 x64从本地目录加载ntdll.dll,而不是system32?
Maven:如何将本地 lib 目录用于依赖项而不是 Maven 存储库