难以解决“sh:<npm package =”“name =”“>命令未找到”与npm run <npm package =“”name =“”> </npm> </npm>

时间:2015-02-24 16:58:48

标签: npm

我第一次将npm模块添加到我的项目中(jshint,optimg,jpgo)。我注意到一些项目,当我 npm run [name] 时,会给出&#34; sh:[name]:找不到命令的结果。&#34;

我无法弄清楚为什么那些不能正常工作,但其他npm安装确实有效。所有这些都安装在本地;我可以通过查看项目根目录中的/ node_modules文件夹来查看安装,并使用 npm ls验证它们。

获取此错误的最新软件包是html-minify。我的package.json看起来像这样(并在http://jsonlint.com/验证):

{
    "name": "npmTest",
    "devDependencies": {
        "jshint": "latest",
        "optimg": "latest",
        "jpgo": "latest",
        "ycssmin": "latest",
        "html-minify": "latest"
    },
    "scripts": {
        "lint": "jshint **.js",
        "png": "optimg",
        "jpg": "jpgo",
        "css": "ycssmin **.css",
        "html": "html-minify"

    }
}

我试过&#34; html-minify **。html&#34;结果相同&#34;未找到&#34;错误。

为什么我会得到&#34; sh:[npm package name]:找不到命令&#34;?我已经读过其他线程了,因为其他模块工作,我怀疑我需要向PATH添加任何内容,或启动服务器,或全局安装。

富勒错误消息(对于html5-lint):

$ npm run html

> npmTest@ html /Users/Steve/Documents/APPS/Test_Apps/npmTest
> html5-lint

sh: html5-lint: command not found

npm ERR! npmTest@ html: `html5-lint`
npm ERR! Exit status 127
npm ERR! 
npm ERR! Failed at the npmTest@ html script.
npm ERR! This is most likely a problem with the npmTest package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     html5-lint
npm ERR! You can get their info via:
npm ERR!     npm owner ls npmTest
npm ERR! There is likely additional logging output above.
npm ERR! System Darwin 14.1.0
npm ERR! command "node" "/usr/local/bin/npm" "run" "html"
npm ERR! cwd /Users/Steve/Documents/APPS/Test_Apps/npmTest
npm ERR! node -v v0.10.25
npm ERR! npm -v 1.3.24
npm ERR! code ELIFECYCLE
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/Steve/Documents/APPS/Test_Apps/npmTest/npm-debug.log
npm ERR! not ok code 0

2 个答案:

答案 0 :(得分:0)

对于未找到命令的问题,您正在使用html-minifier看到它可能与未全局安装npm软件包(带有-g)或使用错误名称调用命令有关(我相信您正在调用定义为html-minifier时的包名称html-minify)

建议使用-g安装命令:

npm install html-minifier -g

,然后运行html-minifier命令:

html-minifier --help (to test installation)
html-minifier --collapse-whitespace --remove-comments --remove-optional-tags --remove-redundant-attributes --remove-script-type-attributes --remove-tag-whitespace --use-short-doctype --minify-css true --minify-js true

对于您正在观察的脚本问题(运行npm run html返回的命令未找到)-这是一个示例package.json。我运行npm运行html(使用上述步骤在全局安装html-minifier后),并且运行html-minifier --help:

 {
   "name": "stackoverflow",
   "version": "1.0.0",
   "description": "",
   "main": "index.js",
   "scripts": {
     "test": "echo \"Error: no test specified\" && exit 1",
     "html": "html-minifier --help"
   },
   "author": "",
   "license": "ISC",
   "dependencies": {
     "html-minifier": "^4.0.0"
   }

}

Github链接:https://github.com/kangax/html-minifier

Npm链接:https://www.npmjs.com/package/html-minifier

自述文件中提供的安装和使用步骤:

安装说明

从NPM用作命令行应用程序:

npm install html-minifier -g

从NPM中以编程方式使用:

npm install html-minifier

来自Git:

git clone git://github.com/kangax/html-minifier.git
cd html-minifier
npm link .

用法

请注意,默认情况下几乎所有选项都是禁用的。有关命令行用法,请参见html-minifier --help以获得可用选项列表。试用并找到最适合您和您的项目的东西。

  • 示例命令行: html-minifier --collapse-whitespace --remove-comments --remove-optional-tags --remove-redundant-attributes --remove-script-type-attributes --remove-tag-whitespace --use-short-doctype --minify-css true --minify-js true

Node.js

var minify = require('html-minifier').minify;
var result = minify('<p title="blah" id="moo">foo</p>', {
  removeAttributeQuotes: true
});
result; // '<p title=blah id=moo>foo</p>'

答案 1 :(得分:0)

这么短的答案可以在本地运行npm软件包命令

npm i install cowsay -d

然后使用

npx cowsay I am working locally

输出应为

______
< I am working locally  >
 ------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

另一方面,在Linux上全局安装npm软件包时,addministrator和节点模块位置存在问题

因此使全局软件包正常工作的最佳做​​法是先安装NVM

sudo apt install curl
curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash
source ~/.profile

然后,一旦安装了nvm,请从nvm节点安装

nvm install node 

或特定版本

nvm install 12.18.3

现在安装并运行全局软件包很简单

npm install -g cowsay

cowsay I am working globaly

将输出

______
< I am working  >
 ------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

现在全局软件包可以正常工作,可以使用npx从项目目录运行本地软件包。