我有一个gulp rjs任务连接和uglifies我所有的自定义.JS文件(任何非供应商库).
我想要做的是从这个任务(控制器和指令)中排除一些文件/目录.
继承我的树:
- application
- resources
- js
main.js
- vendor
- jquery
- modernzr
- angular
- controllers
- controller1
- controller2
- controller3
- directives
- directives1
- directives2
- directives3
- widgets
- widget1
- widget2
- widget3
- widget4
- modules
- modules1
- modules2
- modules3
- modules4
Run Code Online (Sandbox Code Playgroud)
在这里,我的gulp.js
dir = {
app: 'application',
dest: 'dest',
};
config = {
src: {
js: dir.app + '/resources/js'
},
dest: {
js: dir.dest + '/resources/js' …Run Code Online (Sandbox Code Playgroud) 我试图在Gulp中uglify Browserify的输出,但它不起作用.
gulpfile.js
var browserify = require('browserify');
var gulp = require('gulp');
var uglify = require('gulp-uglify');
var source = require('vinyl-source-stream');
gulp.task('browserify', function() {
return browserify('./source/scripts/app.js')
.bundle()
.pipe(source('bundle.js'))
.pipe(uglify()) // ???
.pipe(gulp.dest('./build/scripts'));
});
Run Code Online (Sandbox Code Playgroud)
据我所知,我不能按照以下步骤进行.我是否需要在一个管道中制作以保留序列?
gulp.task('browserify', function() {
return browserify('./source/scripts/app.js')
.bundle()
.pipe(source('bundle.js'))
.pipe(uglify()) // ???
.pipe(gulp.dest('./source/scripts'));
});
gulp.task('scripts', function() {
return grunt.src('./source/scripts/budle.js')
.pipe(uglify())
.pipe(gulp.dest('./build/scripts'));
});
gulp.task('default', function(){
gulp.start('browserify', 'scripts');
});
Run Code Online (Sandbox Code Playgroud) 当我加载我的AngularJS应用程序的缩小版(通过UglifyJS)时,我在控制台中收到以下错误:
Unknown provider: aProvider <- a
Run Code Online (Sandbox Code Playgroud)
现在,我意识到这是由于变量名称错误造成的.unmangled版本工作得很好.但是,我确实希望使用变量名称修改,因为它大大减少了我们的JS输出文件的大小.
出于这个原因,我们在构建过程中使用了ngmin,但它似乎并没有解决这个问题,尽管它在过去很好地帮助了我们.
因此,为了调试此问题,我在uglify grunt任务中启用了源映射.它们生成得很好,Chrome 会从服务器加载地图.然而,我仍然得到同样无益的错误信息,即使我的印象是我现在应该看到提供者的原始名称.
如何让Chrome使用源地图告诉我这里的问题是哪个提供商,或者,我怎样才能以其他方式找到提供商?
有最艰难的时间试图弄清楚为什么缩小不起作用.
我已经通过一个数组对象注入了我的提供者之前的功能,在网络上提出了许多建议,但仍然是"未知的提供者:aProvider < - a"
定期:
var app = angular.module('bpwApp', ['ui.bootstrap', 'ui', 'myTabs'])
.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider){
$routeProvider.
when('/', {templateUrl: 'partials/home.jade', controller: HomeCtrl});
$locationProvider.html5Mode(true);
}])
Run Code Online (Sandbox Code Playgroud)
精缩:
var app = angular.module('bpwApp', ['ui.bootstrap', 'ui', 'myTabs'])
.config(['$routeProvider', '$locationProvider', function(a, b){
a.
when('/', {templateUrl: 'partials/home.jade', controller: HomeCtrl});
b.html5Mode(true);
}])
Run Code Online (Sandbox Code Playgroud)
任何建议都有很大的意义!
在grunt中concat,uglify和minify任务之间有什么区别?我为我所有网站的javascript任务设置了一个uglify任务,它似乎都缩小并连接它们.Grunt的网站对如何配置每个任务有很好的描述,但似乎并没有解释每个任务实际上做了什么.
背景
我刚刚开始使用grunt大约30分钟前.所以忍受我.
但是我有一个相当简单的脚本,它将查看我的js,然后将它压缩成一个文件给我.
码
"use strict";
module.exports = function (grunt) {
// load all grunt tasks
require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
uglify: {
options: {
beautify: true,
report: 'gzip'
},
build: {
src: ['docroot/js/*.js', 'docroot/components/pages/*.js', 'docroot/components/plugins/*.js'],
dest: 'docroot/js/main.min.js'
}
},
watch: {
options: {
dateFormat: function(time) {
grunt.log.writeln('The watch finished in ' + time + 'ms at' + (new Date()).toString());
grunt.log.writeln('Waiting for more changes...');
}
},
js: {
files: '<%= uglify.build.src %>',
tasks: ['uglify']
}
}
});
grunt.registerTask('default', 'watch');
}
Run Code Online (Sandbox Code Playgroud)
题 …
我很想知道,因为Clojure Compiler和UglifyJS不仅可以优化代码大小而且还可以优化性能(虽然我认为大小是主要优先级),如果我的node.js应用程序被缩小,我的运行速度会更快吗?我知道它可能取决于应用程序,但我一般都会问这个问题.
我试图用Webpack的Uglify插件删除console.logs,但似乎与Webpack捆绑的Uglify插件没有该选项,它在文档中没有提到.
我正在从webpack初始化uglify,如下所示: new webpack.optimize.UglifyJsPlugin()
我的理解是我可以使用独立的Uglify lib来获取所有选项,但我不知道哪一个?
问题是drop_console不起作用.
您好我正在使用uglifyJs来缩小我的javascript文件,它一次只能处理一个文件,我所要求的是将名为JS的文件夹中存在的所有javascript文件缩小到一个名为JSM的文件夹中,以便清楚我的JS文件夹中有2个名为test1.js和test2.js的文件,我想对该文件夹运行uglify并在JSM文件夹中生成test1.min.js和test2.min.js,所以有办法吗这个?像这样的命令:
uglifyjs -c -m JS/*.js JSM/*.min.js
Run Code Online (Sandbox Code Playgroud)
或任何可以帮助我的想法.
谢谢.