我正在使用Mac OS X 10.7.5,我正在使用Grunt来连接一些js文件并缩小它们。现在我想缩小我的CSS文件。由于grunt没有提供任何功能,我想为此安装一个grunt插件。 根据说明我必须进入我的项目根文件夹并使用npm安装插件。所以我做了以下事情:
cd <PROJECT_ROOT>
npm install grunt-contrib-css
该插件的说明如下:https://npmjs.org/package/grunt-contrib-mincss 我打开了我的grunt.js文件并添加了
grunt.loadNpmTasks('grunt-contrib-mincss');
但是当我试图运行咕噜声时,我得到了
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)
为什么插件安装在外面?或者有没有办法定义安装它的实际位置?
答案 0 :(得分:4)
我在Ubuntu 12.04上遇到类似的模块grunt-jasmine-task
问题(与上面相同的错误信息)。这解决了我的问题:
node_modules
。npm install grunt-jasmine-task
。答案 1 :(得分:3)
这种安装方式对我有用:
cd <PROJECT_ROOT>
。npm install grunt-contrib-mincss
。使用以下测试内容在当前目录中创建测试文件:
module.exports = function(grunt) {
grunt.initConfig({
mincss: {
compress: {
files: {
"path/to/output.css": ["path/to/input_one.css", "path/to/input_two.css"]
}
}
}
});
grunt.loadNpmTasks('grunt-contrib-mincss');
grunt.registerTask('default', 'mincss');
};
我的目录结构此时看起来像这样(请检查一下,如果某些文件不存在或在其他文件夹中,那么它可能是它无效的原因):
<PROJECT_ROOT> /
node_modules /
grunt-contrib-mincss/
grunt.js
在终端中运行grunt
。
脚本有效。
在您的情况下它不起作用的可能原因:
请检查。
答案 2 :(得分:1)
我见过没有package.json
文件的情况导致模块全局安装。我不确定当时正在运行什么版本,因为它不是我的机器。
下次尝试在安装模块之前运行npm init
。之后,使用npm install grunt-contrib-css --save
进行安装,将其添加到package.json
文件中。您还可以使用--save-dev
将其添加到您的devDependencies。
答案 3 :(得分:0)
在我的情况下,我忘了添加:
grunt.loadNpmTasks('grunt-jsdoc-plugin');
到grunt.js,所以看起来应该是这样的:
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
jsdoc : {
dist : {
src: ['frontend/js/**/*.js'],
dest: 'docs/frontend'
}
}
});
grunt.loadNpmTasks('grunt-jsdoc-plugin');
};
答案 4 :(得分:0)
如果您查看grunt-contrib-mincss文件夹下有一个自述文件,他们将名称从grunt-contrib- mincss 更改为grunt-contrib- cssmin 强>
无论如何,这不是你(和我的)的错。 XD