标签: uglifyjs

使用 requirejs 优化器丑化一个 JS 文件

我想知道是否有一种方法可以使用已安装在我的计算机中的 r.js(RequireJS Optimizer)在命令行中仅丑化一个文件。就像我们可以使用node r.js cssIn="" out=""...

我实际上是在没有互联网连接的计算机上工作,我无法在上面安装其他东西(尤其是使用 npm)

也许有可能从另一台计算机下载 uglifyjs 包,包括所有准备安装在我的计算机上的依赖项?虽然我没有找到类似的东西......

谢谢

javascript node.js requirejs uglifyjs

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

如何知道安装了哪个版本的 UglifyCSS?

我已经UglifyCSS使用命令全局安装:

npm install -g uglifycss
Run Code Online (Sandbox Code Playgroud)

如何获取已安装的当前版本UglifyCSS

聚苯乙烯

UglifyJS我用命令检查的版本:

uglifyjs -V
Run Code Online (Sandbox Code Playgroud)

但是当我尝试类似的命令时UglifyCSS

uglifycss -V
Run Code Online (Sandbox Code Playgroud)

我有一个错误:

unable to process "-V" with Error: ENOENT, no such file or directory '-V'
Run Code Online (Sandbox Code Playgroud)

当我尝试时出现同样的-v错误--version

ubuntu npm uglifyjs uglifycss

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

IntelliJ中的UglifyJS文件监视器在构建期间缩小已缩小的文件

我在IntelliJ IDEA中设置了一个UglifyJS文件观察器,它在我编辑时工作得很好 - 我修改了源js,自动在旁边创建了缩小版本.

但是,当我运行Ant构建,并将缩小版本复制到构建工作目录时,观察者"帮助"在构建工作目录中创建它们的双倍缩小版本(*.min.min.js),不行.

我已经将观察者的范围设置为'src'模块,但显然这不符合你的想法,因为当Ant将文件复制到'build'模块时会产生双打.当我使用IDEA从src手动复制单个文件进行构建时会发生错误.

我不知道如何将其设置为包含*.js但排除*.min.js,这是非常正确的事情.(看起来如此明智,以至于Uglify应该将其内置,但我可以看到它没有.)

除了摆脱观察者和编写脚本之外,还要进行缩小,或仅复制原始的js版本,让观察者(重新)创建缩小的版本,最好的方法是什么?

ant intellij-idea uglifyjs file-watcher

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

使用Gulp时捕获和处理Uglify错误

我的Gulp设置在其他方面非常有效,但如果我的JS文件出错,它会停止.直到Gulp 4终于发布之前,我们都被困在Gulp中使用不完美的错误系统......那么我怎么能抓住Uglify的错误呢?

gulp.task('js', function() {
    return gulp
        .src(inputJS)
        .pipe(sourcemaps.init())
        .pipe(concat('main.js'))
        .pipe(uglify(uglifyOptions))
        .pipe(sourcemaps.write('./maps'))
        .pipe(gulp.dest(outputJS))
});
Run Code Online (Sandbox Code Playgroud)

根据Uglify文档,gulp-uglify如果无法缩小特定文件,则会发出"错误"事件.只要有可能,PluginError对象将包含以下属性:fileName,lineNumber,message.

我最接近它的工作是:.on('error', function(uglify) { console.error(uglify.message) })),但它结束了上面的Gulp任务不再做了.

编辑:我意识到有许多Gulp扩展有助于处理错误处理(例如Gulp-Util,Stream-Combiner2,Gulp-Plumber等)但我不希望安装一个全新的扩展仅用于Uglify(我正在处理我的Sass错误,没有一个).

npm uglifyjs gulp gulp-uglify

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

如果eval存在,uglifyjs不会破坏变量

如果存在"eval()",则uglify不会破坏变量.命令行:

uglifyjs script/script.js --compress --mangle --unsafe/path/to/script

例:

(function(window, document, $) {
    "use strict";
    var test = function( $data )
    {
        eval( $data );
    };
    test( '' );
})(window, document, jQuery);
Run Code Online (Sandbox Code Playgroud)

结果:

!function(window,document,$){"use strict";var test=function($data){eval($data)};test("")}(window,document,jQuery);
Run Code Online (Sandbox Code Playgroud)

预期:

!function(n,t,u){"use strict";var c=function(n){eval(n)};c("")}(window,document,jQuery);
Run Code Online (Sandbox Code Playgroud)

eval uglifyjs

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

gulp-uglify不会保留文件顺序

当我使用gulp-uglify来缩小Javascript文件时,订单会搞砸.

让我们说我的任务按预期工作:

var gulp = require('gulp');
var rename = require('gulp-rename');
var gp_concat = require('gulp-concat');

gulp.task('js', function() {
    gulp.src([
            './public/bower_components/jquery/dist/jquery.min.js',
            './public/js/functions.js',
        ])
        .pipe(gp_concat('combined.js'))
        .pipe(gulp.dest(path.js + '/dist'))
});
Run Code Online (Sandbox Code Playgroud)

添加丑化线,它改变了顺序jqueryfunctions文件,并将functions.js以上jquery.

var gulp = require('gulp');
var rename = require('gulp-rename');
var uglify = require('gulp-uglify');
var gp_concat = require('gulp-concat');

gulp.task('js', function() {
    gulp.src([
            './public/bower_components/jquery/dist/jquery.min.js',
            './public/js/functions.js',
        ])
        .pipe(gp_concat('combined.js'))
        .pipe(gulp.dest(path.js + '/dist'))
        .pipe(uglify({
            preserveComments: 'license'
        }))
        .pipe(rename({suffix: '.min'}))
        .pipe(gulp.dest(path.js + '/dist'))
});
Run Code Online (Sandbox Code Playgroud)

任何可能的解决方案?当然,functions.js只是一个带有函数的平面Javascript文件,并没有包含在IIFE中.

javascript minify uglifyjs gulp gulp-uglify

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

React Native捆绑:SyntaxError:意外的令牌:运算符(*)

当我尝试捆绑我的应用程序时:

react-native bundle --platform ios --dev false \
    --entry-file index.ios.js --bundle-output iOS/main.jsbundle
Run Code Online (Sandbox Code Playgroud)

我收到以下错误,没有其他详细信息:

SyntaxError: Unexpected token: operator (*)
Run Code Online (Sandbox Code Playgroud)

对于它的价值,这适用于(with --dev true):

react-native bundle --platform ios --dev true \
    --entry-file index.ios.js --bundle-output iOS/main.jsbundle
Run Code Online (Sandbox Code Playgroud)

我最好的猜测是问题出现在UglifyJS的某个步骤中,可能与以下内容有关:

https://github.com/mishoo/UglifyJS2/issues/1199

有小费吗?欢迎提出更深入挖掘的建议!谢谢!

ios uglifyjs react-native react-native-ios

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

如何在UglifyJS中保留换行符?

当我们的生产应用程序抛出错误时,它始终在同一行,并且使得调试非常困难.我们已经启用了源映射,但由于各种原因,这几乎没有帮助.如果我们能够在缩小代码时保持换行符将会非常有用,这将为我们提供关于问题所在位置的更好线索.然后我至少可以搜索压缩代码.有什么办法吗?

uglifyjs

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

使用gulp Uglify/minify Polymer web组件

我正在尝试使用gulp的uglify插件来缩小我的Web组件,但它失败了,因为它无法识别自定义的html标记.

是否有任何gulp插件可以缩小包含自定义标签的html?

minify uglifyjs polymer

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

与laravel混淆代码

我有一个带有laravel和vuejs的Web应用程序。我使用laravel-mix并且在我webpack.mix.js有:

const { mix } = require('laravel-mix');
mix.sourceMaps();
mix.js('resources/assets/js/app.js', 'public/js')
   .sass('resources/assets/sass/app.scss', 'public/css');
Run Code Online (Sandbox Code Playgroud)

现在我会混淆代码,所以我所有的组件,如何使用laravel-mix来做到这一点?

uglifyjs vue.js laravel-mix

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