我正在学习在 Node 中构建 cli 工具的教程 -- How to Build a Command Line (CLI) Tool in Node .
环境:
- 命令
- Node 9.5.0
- npm 6.11.3
- Windows 10
我已经到了让您将其创建为 shell cmd 并使用 npm link
链接它的地步。它没有在我的 shell 中运行它——与 create-react-app 的运行方式相同——而是出现 Windows 脚本宿主错误:
Line: 1
Char: 1
Error: Invalid Character
Code: 800A03F6
Source: Microsoft JScript compilation error`
当我运行 where npm
时,我得到:
C:\Program Files\nodejs\npm
C:\Program Files\nodejs\npm.cmd
C:\Users\smkar\AppData\Roaming\npm\npm
C:\Users\smkar\AppData\Roaming\npm\npm.cmd`
但是当我运行 where caph
时,我得到:
D:\Code\projects\cap-hooks\caph.js
C:\Users\smkar\AppData\Roaming\npm\caph
C:\Users\smkar\AppData\Roaming\npm\caph.cmd`
我很确定这个错误是因为它试图从 D 盘上的本地 javascript 文件打开它,但我不知道如何修复它。我正在尝试制作一个用于娱乐/学习的 CLI 工具,我希望能够在全局范围内安装该工具,但我无法从这里继续/修复此问题。
引用这里的文件和 package.json:
package.json
{
"name": "caph",
"version": "0.0.1",
"description": "An automated cli package for generating administrative
tools and components for React projects, written in
React Hooks.",
"main": "caph.js",
"bin": {
"caph": "./caph.js"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "smkarber",
"license": "ISC"
}
caph.js
#!/user/bin/env node
console.log("Hello World!");
运行 npm link
后,我可以在我的 shell 中使用 caph
,但它立即给我一个 Windows Script Host 错误,而不是在 shell 中运行它。我尝试了很多从 Google 返回的 Github 问题以及一些 Stackoverflow 问题,但似乎没有任何内容直接涉及解决这种情况,我无法纠正这种情况。
最佳答案
必须是/usr/
而不是/user/
。所以 caph.js
应该是这样的:
#!/usr/bin/env node
console.log("Hello World!");
关于node.js - Windows 10 中包的 NPM 全局安装导致 Windows 脚本宿主错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57835405/