我正在努力實現順暢的工作流程。Grunt SCSS - 不重裝
我的問題:
我的JS修改顯示和微細化以及現場重裝工作正常。
grunt
或繁重的插件:當我修改我的SCSS文件,它們不運行命令下運行
grunt watch
它只能當調用:
grunt sass
這是'grunt sass'控制檯窗口的輸出:
Macintosh:grunt-test Neil$ grunt sass
Running "sass:dist" (sass) task
File "css/global.css" created.
Done, without errors.
備註:
當我在sass文件上運行'grunt watch'時,我注意到grunt在無緣無故的情況下對javascript執行縮小操作。當這個文件或它的一個依賴關係生效時,這肯定會被調用?
Gruntfile.js內容:
module.exports = function(grunt) {
// 1. All configuration goes here
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
watch: {
options: {
files: ['css/*.css'],
livereload: true
},
css: {
files: ['css/*.scss'],
tasks: ['sass'],
options: {
spawn: false,
}
},
scripts: {
files: ['js/*.js', 'scss/*.scss'],
tasks: ['concat', 'uglify'],
options: {
spawn: false,
}
}
},
sass: {
dist: {
options: {
style: 'compressed'
},
expand: true,
cwd: 'scss/',
src: ['*.scss'],
dest: 'css/',
ext: '.css'
}
},
concat: {
// 2. Configuration for concatinating files goes here.
dist: {
src: [
'js/libs/*.js', // All JS in the libs folder
'js/global.js' // This specific file
],
dest: 'js/build/production.js',
}
},
uglify: {
build: {
src: 'js/build/production.js',
dest: 'js/build/production.min.js'
}
},
imagemin: {
dynamic: {
files: [{
expand: true,
cwd: 'images-lossy/',
src: ['**/*.{png,jpg,gif}'],
dest: 'images/'
}]
},
png: {
options: {
optimizationLevel: 7
}
},
jpg: {
options: {
progressive: true
}
}
}
});
// 3. Where we tell Grunt we plan to use this plug-in.
// CONCATENATION PLUGIN
grunt.loadNpmTasks('grunt-contrib-concat');
// MINIFY PLUGIN
grunt.loadNpmTasks('grunt-contrib-uglify');
// IMG CRUSH PLUGIN
grunt.loadNpmTasks('grunt-contrib-imagemin');
// GRUNT WATCH PLUGIN
grunt.loadNpmTasks('grunt-contrib-watch');
// SASS LIBARY PLUGIN
grunt.loadNpmTasks('grunt-contrib-sass');
// 4. Where we tell Grunt what to do when we type "grunt" into the terminal.
grunt.registerTask('default', ['sass','concat', 'uglify', 'imagemin', 'watch']);
};
希望以上信息可以幫助。我以前使用Codekit,它是一個非常棒的應用程序。我想搬到咕嚕,但也許我的配置文件不正確我很接近。
任何幫助將不勝感激。
- 尼爾
謝謝,現在的偉大工程。我假設如果我把jshint放在任務中。它只會在js上運行,或者它會應用於文件中的任何內容:[...]? – Neil
@Neil如果你把它放在'腳本'任務中,它會被js改變觸發。現在它的應用取決於你如何在watch外部設置jshint任務,通常是除jQuery等第三方庫之外的相同js文件。我想你會有'任務:['jshint','concat ','uglify']' –
所以如果我想專注於SCSS並停止加載JS(上面的任務),我會怎麼做。我不明白爲什麼我應該編輯SCSS文件並從grunt重新加載JS任務。感謝您的回覆 – Neil