某些Windows用户不会将'grunt'识别为内部或外部命令

Pat*_*tan 33 javascript node.js gruntjs

Grunt不适用于所有Windows用户.当我运行npm install命令时,一些用户正面临一些问题; 它打印如下消息.

E:\Worksapce\web>npm install
npm WARN package.json registers@4.0.0 No repository field.
Run Code Online (Sandbox Code Playgroud)

当我尝试时npm install -g grunt-cli,我认为它是成功的.

E:\Worksapce\web>npm install -g grunt-cli
npm http GET http://registry.npmjs.org/grunt-cli
npm http 304 http://registry.npmjs.org/grunt-cli
npm http GET http://registry.npmjs.org/nopt
npm http GET http://registry.npmjs.org/findup-sync
npm http GET http://registry.npmjs.org/resolve
npm http 304 http://registry.npmjs.org/nopt
npm http 304 http://registry.npmjs.org/resolve
npm http 304 http://registry.npmjs.org/findup-sync
npm http GET http://registry.npmjs.org/abbrev
npm http 304 http://registry.npmjs.org/abbrev
npm http GET http://registry.npmjs.org/glob
npm http GET http://registry.npmjs.org/lodash
npm http 304 http://registry.npmjs.org/glob
npm http 304 http://registry.npmjs.org/lodash
npm http GET http://registry.npmjs.org/inherits
npm http GET http://registry.npmjs.org/minimatch
npm http 304 http://registry.npmjs.org/minimatch
npm http 304 http://registry.npmjs.org/inherits
npm http GET http://registry.npmjs.org/lru-cache
npm http GET http://registry.npmjs.org/sigmund
npm http 304 http://registry.npmjs.org/lru-cache
npm http 304 http://registry.npmjs.org/sigmund
C:\Users\user1234\AppData\Roaming\npm\grunt -> C:\Users\user1234\AppData\Roaming
\npm\node_modules\grunt-cli\bin\grunt
grunt-cli@0.1.13 C:\Users\user1234\AppData\Roaming\npm\node_modules\grunt-cli
+-- resolve@0.3.1
+-- nopt@1.0.10 (abbrev@1.0.5)
+-- findup-sync@0.1.3 (lodash@2.4.1, glob@3.2.11)
Run Code Online (Sandbox Code Playgroud)

但是当我运行grunt时,我收到如下错误消息:

E:\Worksapce\web>
E:\Worksapce\web>grunt
'grunt' is not recognized as an internal or external command,
operable program or batch file.
Run Code Online (Sandbox Code Playgroud)

我的package.json就是这个.

{
  "author": "Company",
  "name": "registers",
  "version": "4.0.0",
  "homepage": "http://abcd.se",
  "dependencies": {},
  "devDependencies": {
    "grunt": "~0.4.4",
    "grunt-contrib-jshint": "~0.9.2",
    "grunt-contrib-watch": "~0.6.1",
    "grunt-contrib-less": "~0.11.0",
    "grunt-contrib-clean": "~0.5.0",
    "grunt-contrib-copy": "~0.5.0",
    "grunt-contrib-concat": "~0.3.0",
    "grunt-contrib-uglify": "~0.4.0",
    "grunt-ngmin": "0.0.3",
    "grunt-contrib-jasmine": "~0.5.2"
  }
}
Run Code Online (Sandbox Code Playgroud)

另一个用户成功地执行grunt没有任何问题.这仅代表一些用户.

有人可以告诉我出了什么问题.

小智 63

Grunt已不再在全球范围内安装.有关更多信息,请参阅" 入门"页面.

以下命令可以帮助您解决此问题;

npm install -g grunt-cli
Run Code Online (Sandbox Code Playgroud)


Mat*_*tis 17

您的日志表明该grunt命令是在您的全局目录中创建的.错误也表明C:\Users\mc862634\AppData\Roaming\npm\不在您的路径中.

您需要检查PATH并确保在\AppData\Roaming\npm缺少位置时添加该位置.

最简单的检查方法是打开命令提示符并键入PATH.

请参阅此其他StackOverflow问题作为参考:Windows 8上的Grunt:'grunt'无法识别


Chr*_*row 14

在Windows 8上,Grunt需要添加以下内容PATH:

C:\Users\your_username\AppData\Roaming\npm
Run Code Online (Sandbox Code Playgroud)

在某些系统上,PATH中允许的字符数是有限的,这可能导致grunt所需的正确路径即使在npm install -g grunt-cli运行后也不会被添加.某些设置(例如,对于您已安装的某些程序)可以安全地从PATH中删除,因为它们通常作为故障安全存在,通常不是必需的.如果您有此问题:

  • 备份您的PATH(此PC>右键>属性>高级系统设置>环境变量>'编辑'当前用户的'路径'用户变量中的变量,并复制'变量值'并将其保存在某处)
  • 从中删除一些值PATH,并添加到路径中C:\Users\your_username\AppData\Roaming\npm

此外,确保在安装Grunt CLI并添加路径后,关闭所有打开的命令窗口并在尝试之前重新打开它们 Grunt