[英]Grunt plugins are not installed in current location
我正在使用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)
为什么插件安装在外面? 或者有没有办法定义安装它的实际位置?
我在Ubuntu 12.04上遇到类似的问题grunt-jasmine-task
模块(与上面相同的错误信息)。 这解决了我的问题:
node_modules
。 npm install grunt-jasmine-task
。 这种安装方式对我有用:
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
。
脚本有效。
在您的情况下它不起作用的可能原因:
请检查一下。
我见过没有package.json
文件的情况导致模块全局安装。 我不确定当时正在运行什么版本,因为它不是我的机器。
下次在安装模块之前尝试运行npm init
。 之后,使用npm install grunt-contrib-css --save
将它添加到package.json
文件中。 您还可以使用--save-dev
将其添加到您的devDependencies中。
在我的情况下,我忘了添加:
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');
};
如果你把咕噜-的contrib-mincss文件夹下的样子,有一个自述文件,他们从繁重的-contrib- mincss更名为咕噜-contrib- cssmin。
无论如何,这不是你(和我的)的错。 XD
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.