UglifyJS を使用して JavaScript ファイルを縮小するように、Visual Studio 2015 でGruntJSを構成しました。正常に動作します。
ただし、これは、Visual Studio がリリース モードの場合にのみ発生するようにしたいと考えています。デバッグ モードで JavaScript ファイルをデバッグしたいのですが、縮小された JavaScript はデバッグが困難 (不可能) です。
UglifyJS を使用して JavaScript ファイルを縮小するように、Visual Studio 2015 でGruntJSを構成しました。正常に動作します。
ただし、これは、Visual Studio がリリース モードの場合にのみ発生するようにしたいと考えています。デバッグ モードで JavaScript ファイルをデバッグしたいのですが、縮小された JavaScript はデバッグが困難 (不可能) です。
ASP.Net 5タスクランナーを使用してこの問題を解決するために、以下を使用しました。
私のソリューションには、次のフォルダー階層があります。
Solution
->wwwroot
->Scripts
->app.js
->Controllers
->controller1.js
->controller2.js
1.) ファイル ウォッチャーは、Scripts ディレクトリとすべてのサブ フォルダーを監視します。
2.) ファイルの変更が検出されると、すべての *.js ファイルがスクリプト フォルダーからスクリプト フォルダー内の wwwroot ディレクトリにコピーされます。
3.) 次に、uglify タスクが wwwroot ディレクトリのスクリプト フォルダーで実行されます。これにより、html アプリケーションによって参照される単一の app.js ファイルに縮小されます。
uglify タスクの sourceMap オプションが turn になっているため、javascript デバッガーはデバッグ モードでスクリプトを参照できますが、デバッグ モード以外で実行している場合は、縮小されたスクリプトが使用されます。
module.exports = function (grunt) {
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.initConfig({
copy: {
main: {
files: [
{
expand: true,
src: ['Scripts/app.js', 'Scripts/Controllers/**'],
dest: 'wwwroot'
}
]
}
},
uglify: {
my_target: {
files: { 'wwwroot/app.js': ['wwwroot/Scripts/app.js', 'wwwroot/Scripts/**/*.js'] },
options : {sourceMap : true}
}
},
watch: {
scripts: {
files: ['Scripts/app.js','Scripts/**/*.js'],
tasks: ['copy:main', 'uglify']
}
}
});
grunt.registerTask('default', ['copy:main', 'uglify', 'watch:scripts']);
};