これがまだ言及されていない理由はわかりませんが、このスレッドは少し古くなっていると思います。この問題を解決するために検索中にこれに出くわしたので、他の初心者の JS 関係者が見つけられるように、 GruntJSに関する簡単な記事をここに載せると思いました。
基本的に、適切に構成された Gruntfile.js は、JS に関するさまざまなタスクを実行できます。これには、ファイルの連結、ファイルの縮小、コード linting などがありますが、これらに限定されません。
grunt
次の方法で Ubuntu にインストールできます。
$ 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 のサイトには、GruntJS の使用方法に関する非常に優れた記事がありますが、Gruntfile.js の例を次に示します。
- すべての JS ファイル (
app.js
現在のディレクトリとディレクトリ内のすべての.js
ファイルngmodules
) をリントします。
- ファイルを連結して に保存します
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']);
};