[英]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.