我已经配置了GruntJS在 Visual Studio 2015 中使用 UglifyJS 缩小我的 JavaScript 文件。工作正常。
但是,我希望仅当 Visual Studio 处于 Release模式时才会发生这种情况。在 Debug模式下,我想调试我的 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 选项打开,允许 javascript 调试器在 Debug模式下引用脚本,但当不在 Debug模式下运行时,将使用缩小的脚本。
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']);
};
关于gruntjs - Visual Studio 2015 中的 UglifyJS 仅在 Release模式下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29768075/