2

UglifyJS を使用して JavaScript ファイルを縮小するように、Visual Studio 2015 でGruntJSを構成しました。正常に動作します。

ただし、これは、Visual Studio がリリース モードの場合にのみ発生するようにしたいと考えています。デバッグ モードで JavaScript ファイルをデバッグしたいのですが、縮小された JavaScript はデバッグが困難 (不可能) です。

4

1 に答える 1

2

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']);
};
于 2015-08-05T14:06:15.580 に答える