标签: grunt-contrib-uglify

保留“调试器”关键字 grunt uglify

我正在用 JS 开发一个库,我想在使用 grunt-contrib-uglify 后保留“debugger”关键字,因为这是有意使用的,但默认行为(显然)是删除所有调试器。

我的咕噜声文件:

module.exports = function (grunt) {
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        uglify: {
            CrackerTrapProductionMinJS: {
                options:{
                    banner: '/*! <%= pkg.name %> - v<%= pkg.version %> - ' +
            '<%= grunt.template.today("yyyy-mm-dd") %> */\n',
                drop_console: true,
                mangle: {
                    reserved: ['debugger']
                  }
                },
                files: {
                    './build/cracker-trap.min.js': './build/cracker-trap.ob.js'
                }
            }
        },          
    });

    grunt.loadNpmTasks('grunt-contrib-uglify');

    grunt.registerTask('default', ['uglify']);
};
Run Code Online (Sandbox Code Playgroud)

我想保留调试器关键字来验证用户是否打开了开发人员工具的方法:

function timeValidation() {
    var startTime = new Date();
    debugger;
    var endTime = new Date();

    return endTime - startTime > 100;
}
Run Code Online (Sandbox Code Playgroud)

完整代码位于: https: //github.com/bioverflow/cracker-trap

javascript grunt-contrib-uglify

2
推荐指数
1
解决办法
1111
查看次数

咕unt挂在丑

我正在尝试最小化一些棱角分明的脚本,但由于某种原因,uglify会无限期地挂起。如果我将JSHint添加到任务列表中,它将运行良好并完成,然后挂在uglify上。

这是我的Gruntfile:

module.exports = function (grunt) {

    // Project configuration
    grunt.initConfig({
        // make node configuration available for use
        pkg: grunt.file.readJSON('package.json'),

        // configure uglify
        uglify: {
            options: {
                mangle: false
            },
            my_target: {
                dist: {'dist/test.min.js': ['src/test.js']}
            }
        },

        // configure JSHint
        jshint: {
            app: ['src/*.js']
        }

    });

    // load pluginsng
    grunt.loadNpmTasks('grunt-contrib-jshint');
    grunt.loadNpmTasks('grunt-contrib-uglify');


    // default
    grunt.registerTask('default', ['jshint', 'uglify']);
    grunt.registerTask('uglify', ['uglify']);
};
Run Code Online (Sandbox Code Playgroud)

这是我使用的版本:

  "devDependencies": {
    "grunt": "~0.4.5",
    "grunt-contrib-jshint": "~0.11.2",
    "grunt-contrib-uglify": "~0.9.1"
  }
Run Code Online (Sandbox Code Playgroud)

我跑了grunt -v,在jshint完成后,它将永远输出:

Running "uglify" task

Running "uglify" task

Running …
Run Code Online (Sandbox Code Playgroud)

minify node.js gruntjs grunt-contrib-uglify

1
推荐指数
1
解决办法
1094
查看次数

grunt uglify将缩小的文件保存在与src相同的文件夹中

我有应用程序代码结构,其中js文件分布在多个文件夹中.我们可以创建grunt uglify任务,以便将缩小的文件放在与src相同的文件夹中,或者将它放在/ dist下与src相同的文件夹下,这将以递归方式扫描应用程序中的所有src js文件.

在html中,我们必须包含所有js文件,但是希望保持正常的js用于开发和调试目的,并在测试和部署时缩小.它有更好的选择,所以我不必每次都更改main.html.

  uglify: {
        options: {
            report: 'min',
            mangle: false
        },
        controllers: {
            files: {
                'src/main/webapp/app/controllers/dist/controllers.min.js': ['src/main/webapp/app/controllers/*.js', '!src/main/webapp/app/controllers/dist/*.js']
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

这是uglify任务,但我希望它以递归方式查看src/main/webapp/app/for*.js文件中的所有文件夹和子文件夹,并在同一位置创建*.min.js.

gruntjs grunt-contrib-uglify

1
推荐指数
1
解决办法
668
查看次数

为什么我的Javascript正常运行正常,但是缩小,它不会?

我有一个我正在开发的webapp,它使用HTML + Javascript(Angular 1.5.0)+ CSS的前端.当我在本地主机上运行时,网站运行良好.我有一个/index.html文件.这个文件导入我的javascript代码,如下所示:<script src="/app/app.js"></script>

但现在我刚刚使用Grunt实现了自动linting,uglifying等.Grunt非常好地将我的单个Javascript文件(/app/app.cs)转换为minnified one(/dist/js/app.min.js).我改变了我/index.html对包括minnified的Javascript来代替:<script src="/dist/js/app.min.js"></script>.但现在应用程序停止工作.在浏览器的开发控制台中,我看到以下错误:

angular.js:68 Uncaught Error: [$injector:modulerr] Failed to instantiate module myApp due to:
Error: [$injector:unpr] Unknown provider: a
http://errors.angularjs.org/1.5.0/$injector/unpr?p0=a
    at http://127.0.0.1:8080/bower_components/angular/angular.js:68:12
    at http://127.0.0.1:8080/bower_components/angular/angular.js:4397:19
    at getService (http://127.0.0.1:8080/bower_components/angular/angular.js:4550:39)
    at injectionArgs (http://127.0.0.1:8080/bower_components/angular/angular.js:4574:58)
    at Object.invoke (http://127.0.0.1:8080/bower_components/angular/angular.js:4596:18)
    at runInvokeQueue (http://127.0.0.1:8080/bower_components/angular/angular.js:4497:35)
    at http://127.0.0.1:8080/bower_components/angular/angular.js:4506:11
    at forEach (http://127.0.0.1:8080/bower_components/angular/angular.js:321:20)
    at loadModules (http://127.0.0.1:8080/bower_components/angular/angular.js:4487:5)
    at createInjector (http://127.0.0.1:8080/bower_components/angular/angular.js:4409:19)
http://errors.angularjs.org/1.5.0/$injector/modulerr?p0=raptorApp&p1=Error%…F%2F127.0.0.1%3A8080%2Fbower_components%2Fangular%2Fangular.js%3A4409%3A19)
Run Code Online (Sandbox Code Playgroud)

为什么正常的Javascript文件可以正常工作,但Grunt缩小的文件不会?我该如何解决?

javascript angularjs gruntjs grunt-contrib-uglify

0
推荐指数
1
解决办法
98
查看次数