【问题标题】:NPM global install of a package in Windows 10 results in Windows Script Host error在 Windows 10 中 NPM 全局安装包会导致 Windows 脚本主机错误
【发布时间】:2019-09-07 16:09:14
【问题描述】:

我正在关注在 Node 中构建 cli 工具的教程 -- How to Build a Command Line (CLI) Tool in Node

环境:

  • 指挥官
  • 节点 9.5.0
  • npm 6.11.3
  • Windows 10

我已经到了让您将其创建为 shell cmd 并使用npm link 链接它的地步。而不是在我的 shell 中运行它——就像 create-react-app 一样——而是出现 Windows Script Host 错误:

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 问题,但似乎没有直接涉及修复这种情况,我无法纠正这种情况。

【问题讨论】:

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


    【解决方案1】:

    它必须是/usr/ 而不是/user/。所以caph.js 应该是这样的:

    #!/usr/bin/env node
    console.log("Hello World!");
    

    【讨论】:

    • 谢谢,现在看来很明显了。
    • 嗯...我面临同样的问题,但即使我添加了#!/usr/bin/env node,我仍然从 Windows Script Host 收到错误。看来 shebangs 在 Windows 上不起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-09
    • 1970-01-01
    • 2016-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-11
    相关资源
    最近更新 更多