node.js - Windows 10 中包的 NPM 全局安装导致 Windows 脚本宿主错误

标签 node.js npm windows-10 command-line-interface

我正在学习在 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/

相关文章:

Windows 10 忽略我的设置文件中的 Authenticode

listview - Winapi ListView 标题分隔符和 LVS_EX_GRIDLINES 单元格对齐问题

node.js - 你如何在同一个端口上运行 express 和 socket.io

node.js - expressjs 下载文件名 utf-8

javascript - 使用自定义 header 获取 GET 请求?

node.js - 使用 npm install 时权限被拒绝

javascript - 如何在使用Nodejs调用回调函数之前等待N个查询完成

javascript - 将 Scanner-js 与 Angular2 结合使用

node.js - 如何将 sqlite3 模块与 Electron 一起使用?

oracle - 安装 Oracle ODAC 12c 第 4 版 (12.1.0.2.4) 时出现错误 PRVF-7536