javascript - Grunt 插件未安装在当前位置

标签 javascript gruntjs

我正在使用 Mac OS X 10.7.5,我正在使用 Grunt 连接一些 js 文件并缩小它们。现在我还想缩小我的 css 文件。由于 grunt 不提供任何功能,我想为此安装一个 grunt 插件。 根据说明,我必须 cd 进入我的项目根文件夹并使用 npm 安装插件。所以我做了以下事情:

cd <PROJECT_ROOT>
npm install grunt-contrib-css

插件的说明在这里:https://npmjs.org/package/grunt-contrib-mincss 我打开我的 grunt.js 文件并添加

grunt.loadNpmTasks('grunt-contrib-mincss');

但是当我尝试运行 grunt 时,我得到了

Local Npm module "grunt-contrib-mincss" not found. Is it installed?
<WARN> Task "mincss" not found. Use --force to continue. </WARN>

安装没有任何问题,npm ls 列出了模块。

知道我做错了什么吗?非常感谢!

已更新

当我像这样进入一个项目时

cd ~/Sites/path/to/project

然后安装插件

sudo npm install grunt-contrib-mincss

模块实际安装在

~/node_modules/grunt-contrib-mincss

我可以将文件硬复制到我的项目根目录中(这可行),但这有点奇怪,不是吗?

更新 2 我已经更新了节点并再次尝试。以下是控制台输出。

me:~ Fritz$ node -v
v0.8.10
me:~ Fritz$ npm -v
1.1.62
me:~ Fritz$ mkdir ./Sites/npm-test
me:~ Fritz$ cd ./Sites/npm-test/
me:npm-test Fritz$ sudo npm install grunt-contrib-mincss
Password:
npm http GET https://registry.npmjs.org/grunt-contrib-mincss
npm http 304 https://registry.npmjs.org/grunt-contrib-mincss
npm http GET https://registry.npmjs.org/gzip-js
npm http GET https://registry.npmjs.org/clean-css
npm http GET https://registry.npmjs.org/grunt-contrib-lib
npm http 304 https://registry.npmjs.org/gzip-js
npm http 304 https://registry.npmjs.org/clean-css
npm http 304 https://registry.npmjs.org/grunt-contrib-lib
npm http GET https://registry.npmjs.org/crc32
npm http GET https://registry.npmjs.org/deflate-js
npm http GET https://registry.npmjs.org/optimist
npm http 304 https://registry.npmjs.org/deflate-js
npm http 304 https://registry.npmjs.org/crc32
npm http 304 https://registry.npmjs.org/optimist
npm http GET https://registry.npmjs.org/wordwrap
npm http 304 https://registry.npmjs.org/wordwrap
grunt-contrib-mincss@0.3.0 ../../node_modules/grunt-contrib-mincss
├── grunt-contrib-lib@0.3.0
├── gzip-js@0.3.1 (crc32@0.2.2, deflate-js@0.2.2)
└── clean-css@0.4.2 (optimist@0.3.4)

为什么插件安装在外面?或者有没有办法定义它的实际安装位​​置?

最佳答案

我在 Ubuntu 12.04 上遇到了模块 grunt-jasmine-task 的类似问题(与上面相同的错误消息)。这为我解决了这个问题:

  1. 在项目的根目录中手动创建文件夹 node_modules
  2. 再次运行 npm install grunt-jasmine-task

关于javascript - Grunt 插件未安装在当前位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12585026/

相关文章:

javascript - 在 Grunt 中复制 dist 文件的更有效方法?

mysql - 使用Grunt将handlebar模板文件处理成mysql数据库

c# - MVC 4 和 Google Charts - 如何将折线图的数据从 Controller 传递到 View ?

javascript - 混淆代码的迹象

javascript - jquery/ajax 代码在 firefox 上不起作用,但在其他浏览器上有效

javascript - 为什么 Grunt 在 node_modules 中安装这么多文件夹?

单击事件的 Javascript 问题

javascript - 使用 javascript 循环更改单词最后一个字符的颜色

javascript - Yeoman 发电机,咕噜声 : proper usage of grunt-usemin with grunt-rev

gruntjs - 使用 --no-frontend 提升时出现 Grunt 错误 SailsJS