【问题标题】:global cli npm package works on windows but not linux全局 cli npm 包适用于 windows 但不适用于 linux
【发布时间】:2017-01-04 15:24:00
【问题描述】:

我想创建一个 npm cli 工具,我在 bower 的代码中挖掘并复制了他们的基本 package.json 以及 bin 和 lib/bin 文件。

在 Windows 上它可以完美运行,但在 linux 上我只得到: No such file or directory

npm 包为:https://www.npmjs.com/package/quilk

这里是代码,package.json

  {
  "name": "quilk",
  "version": "0.1.3",
  "description": "quilk.",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "John Carmichael",
  "keywords": [
    "builder", "watcher", "fast", "quilk"
  ],
  "license": "MIT",
  "repository": {
    "type": "git",
    "url": "https://github.com/johnc1984/quilk"
  },
  "main": "lib",
  "bin": {
    "quilk": "bin/quilk"
  },
  "files": [
    "bin",
    "lib"
  ],
  "homepage": "https://github.com/johnc1984/quilk",
  "engines": {
    "node": ">=0.10.0"
  },

  "dependencies": {
    "browserify"              : "13.1.0",
    "concat-files"            : "0.1.0",
    "chokidar"                : "1.6.0",
    "fs.extra"                : "1.3.2",
    "javascript-natural-sort" : "0.7.1",
    "jdc-node-cliarg-reader"  : "1.0.0",
    "less"                    : "2.7.1",
    "node-notifier"           : "4.6.1",
    "node-minify"             : "1.3.9",
    "q"                       : "1.4.1",
    "recursive-readdir"       : "2.0.0"
  }
}

bin/quilk

#!/usr/bin/env node

require('../lib/bin/quilk');

lib/bin/quilk

process.bin = process.title = 'quilk';

console.log('This is the quilk script.');

在 Windows 上全局安装它的最终结果是 console.log 在我简单地输入 quilk 后运行输出为 This is the quilk script.

但在 Ubuntu 14lts 上,尝试运行全新的、全局安装的 npm 模块会导致输出 : No such file or directory

在 linux 上运行我缺少什么?

(当我运行命令列出全局安装的 npm 模块 npm ls -g quilk 时)

更多信息: 我在以下版本中遇到了完全相同的问题:

  1. Ubuntu 14lts,节点 6.4.0,npm 3.10.3
  2. Debian 6.0.10,节点 0.12.7,npm 2.11.3

【问题讨论】:

  • 当你得到No such file or directory ??
  • npm install -g quilk 我可以看到全局安装的 quilk 模块。在 Windows 上,我现在可以访问该模块,但只需运行 quilk。但是以 ubuntu 14lts 为例,输入 quilk 并按回车后的结果是 : No such file or directory
  • 即使我只是将控制台日志放在./bin/quilk 文件中,结果也是一样的

标签: javascript node.js linux npm bower


【解决方案1】:

我找到了答案。

事实证明这是 Windows 10 上 npm 中的某种错误。

在从 linux 机器上发布相同的包后,npm 包现在可以在 linux 和 windows 上运行,这让我相信 windows 上的 npm publish 在某处存在一些错误。

问题报告:https://github.com/npm/npm/issues/13808

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-01
    • 2011-10-27
    • 1970-01-01
    • 2016-03-01
    • 2021-05-02
    • 2017-06-14
    相关资源
    最近更新 更多