我不知道爲什麼這還沒有提到,但我確實認爲這個線程有點過時。由於我在搜索過程中偶然發現了這個問題,所以我想我會在這裏爲其他新手JS人員找一個關於GruntJS的快速報告。
本質上,正確配置的Gruntfile.js將能夠執行圍繞JS的各種任務,包括但不限於:連接文件,縮小文件,代碼線索等等。
您可以安裝在Ubuntu grunt
:
$ sudo apt-get install nodejs
$ sudo npm -g install grunt-cli
$ cd /path/to/my/project
--- Assumming you have a package.json file already in place ---
$ npm install grunt --save-dev
--- Install grunt plugins you wish to use ---
$ npm install grunt-contrib-concat --save-dev
$ npm install grunt-contrib-uglify --save-dev
$ npm install grunt-contrib-jshint --save-dev
$ npm install grunt-contrib-watch --save-dev
在GruntJS site,有一個相當不錯的寫了如何使用GruntJS,但這裏有一個例子Gruntfile.js將:
- Lint所有的JS文件(當前目錄中的
app.js
和ngmodules
目錄中的所有.js
文件)。
- 將文件連接並保存到
dist/package-name.js
。
- 縮小連接文件並將其保存到
dist/package-name.min.js
。
Gruntfile.js
:
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
concat: {
options: {
separator: ';'
},
dist: {
src: ['app.js', 'ngmodules/**/*.js'],
dest: 'dist/<%= pkg.name %>.js'
}
},
uglify: {
options: {
banner: '/*! <%= pkg.name %> <%= grunt.template.today("dd-mm-yyyy") %> */\n'
},
dist: {
files: {
'dist/<%= pkg.name %>.min.js': ['<%= concat.dist.dest %>']
}
}
},
jshint: {
files: ['Gruntfile.js', 'app.js', 'ngmodules/**/*.js'],
options: {
// options here to override JSHint defaults
globals: {
jQuery: true,
console: true,
module: true,
document: true
}
}
},
watch: {
files: ['<%= jshint.files %>'],
tasks: ['jshint']
}
});
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.registerTask('default', ['jshint', 'concat', 'uglify']);
};
除非您的服務器支持這樣的事情,它不會工作。這不是瀏覽器問題,應該爲您正在使用的服務器技術添加標籤以查看是否有解決方案。 – lucuma 2013-04-11 14:42:05