'ts-node' is not recognized as an internal or external command, operable program or batch file
我在Vs Code终端和命令提示符中遇到错误,提示" ts-node"未被识别为内部或外部命令,可操作程序或批处理文件。 当我在终端npm中尝试启动命令时,运行dev并且我也添加了package.json文件。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | { "name":"tsnode", "version":"1.0.0", "description":"ts-node experiment.", "scripts": { "dev":"nodemon --exec 'ts-node --cache-directory .tscache' ./server.ts", "start":"ts-node --fast ./server.ts" }, "author":"Mugesh", "license":"ISC", "dependencies": { "@types/body-parser":"^1.16.3", "@types/chalk":"^0.4.31", "@types/express":"^4.0.35", "@types/node":"^7.0.18", "body-parser":"^1.17.1", "chalk":"^1.1.3", "express":"^4.15.2", "nodemon":"^1.11.0", "ts-node":"^3.0.4", "typescript":"^2.3.4" } |
}
我不建议您在自己的模块中依赖全局安装的
如果这样做,那么安装模块的任何人都将需要同时全局安装
为了避免这种情况,应该在package.json中定义所有依赖项,并将其本地安装在node_modules中。
有一个鲜为人知的命令
例如,查看在本地安装
1 2 3 4 5 6 7 8 | rsp@mn-r:~/node/test/ts-test-1$ npm i ts-node typescript npm WARN [email protected] No description npm WARN [email protected] No repository field. + [email protected] + [email protected] added 19 packages from 44 contributors in 2.157s [+] no known vulnerabilities found [19 packages audited] |
然后尝试运行
1 2 | rsp@mn-r:~/node/test/ts-test-1$ ts-node -v -bash: /Users/rsp/opt/node/bin/ts-node: No such file or directory |
我可以用
1 2 3 4 | 127!rsp@mn-r:~/node/test/ts-test-1$ npx ts-node -v ts-node v6.0.3 node v10.1.0 typescript v2.8.3 |
或者我可以明确给出路径:
1 2 3 4 | rsp@mn-r:~/node/test/ts-test-1$ ./node_modules/.bin/ts-node -v ts-node v6.0.3 node v10.1.0 typescript v2.8.3 |
无论如何,我不需要全局安装任何东西。
您需要将ts-node安装为全局
1 | npm install -g ts-node |
更多信息
https://github.com/TypeStrong/ts-node
我刚遇到类似的问题:在Mac OS
我的解决方法是创建一个
1 2 3 4 5 6 | { "watch":"src/**/*.ts", "execMap": { "ts":"ts-node" } } |
并将
1 2 3 | "scripts": { "start":"nodemon src/index.ts" }, |
我遇到了同样的问题,发现它通过使用双引号而不是单引号来工作。
1 | "dev":"nodemon --exec "ts-node" --cache-directory .tscache ./server.ts" |
附言问题出炉后的一年。不知道软件包的版本是否是一个因素。将确认是否需要。
对我来说,删除
使用
-
我在全局安装了
nodemon ,而在本地仅安装了ts-node 。
解:
-
我在全球范围内安装了
ts-node (仍然保持本地依赖性)。
如果您的ts节点不起作用,则可以执行以下操作:
1)在本地安装nodemon->
2)在您的package.json'脚本'中添加以下内容:
1 2 3 4 | "scripts": { "start":"nodemon index.ts", "test":"echo "Error: no test specified" && exit 1" }, |
3)现在运行
4)在终端/命令行中打开一个新选项卡,cd您正在使用的文件夹,然后运行
这将编译您的打字稿。唯一的缺点是您只需要打开两个选项卡即可,一个选项卡用于自动运行节点,另一个选项卡用于自动编译,但这是可行的。
如果您在Windows下工作,则无法在json文件中使用单引号。这就是为什么必须将所有单引号(')替换为双引号(")。
但是在两个双引号(")之间,您必须使用转义的双引号(")。
对于当前情况,您必须更改文件" package.json"中的行:
" dev":" nodemon --exec'ts-node --cache-directory .tscache'./server.ts",
进入行:
" dev":" nodemon --exec" ts-node --cache-directory .tscache" ./server.ts",
我从开发依赖项中删除了它,并将其添加到依赖项中。这为我的案件解决了问题。
如果您使用的是Mac,请按照以下步骤进行操作,以在终端中进行修复。