我第一次将npm模块添加到我的项目中(jshint,optimg,jpgo)。我注意到一些项目,当我 npm run [name] 时,会给出" sh:[name]:找不到命令的结果。"
我无法弄清楚为什么那些不能正常工作,但其他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"
}
}
我试过" html-minify **。html"结果相同"未找到"错误。
为什么我会得到" sh:[npm package name]:找不到命令"?我已经读过其他线程了,因为其他模块工作,我怀疑我需要向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
答案 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
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从项目目录运行本地软件包。