gulp-uglify无法解释这段代码:
var alertString = `<?xml version="1.0" encoding="UTF-8" ?>
<document>
<alertTemplate>
<title>${title}</title>
<description>${description}</description>
</alertTemplate>
</document>`
Run Code Online (Sandbox Code Playgroud)
它抱怨这个角色:`.该角色对苹果的JS框架有效.我无法在uglify包中看到任何内容来忽略这些字符及其中的文本字符串.我错过了文档中的内容吗?
有人可以解释如何uglify,然后concat并最终使用gulp生成源地图?我似乎无法让它工作.我没有在API中看到任何关于此的内容,但在我看来它应该得到支持.关键是生成源映射并在设置断点时使用源文件.我已经尝试将第concat一个放在下面的代码中,但是当我这样做时,断点在chrome浏览器中不起作用.
我正在使用
concat = require('gulp-concat'),和uglify = require('gulp-uglify').
gulp.src(['src/app.js', 'src/**/*.js'])
.pipe(sourcemaps.init())
.pipe(uglify({
compress: {
negate_iife: false
}
}))
.pipe(concat("app.concat.js"))
.pipe(rename('app.min.js'))
.pipe(sourcemaps.write('./'))
.pipe(gulp.dest('public/js'));
Run Code Online (Sandbox Code Playgroud) 我正在为我的应用程序创建3个缩小的包.我有两个任务要做,缩小和捆绑.Minify依赖于bundle.如果我运行minify,两个任务都会运行而没有错误.捆绑包已创建,但缩小的文件不是.如果我删除对bundle的依赖,那么我可以自己运行minify并成功创建缩小的文件.这让我相信当minify任务触发时可能正在使用文件(因为bundle还没有完成?).如何使其等待文件完全准备好?我可以通过这条小溪吗?或者将这些组合成一个任务?它们目前不是单个任务的原因是因为它们每个捆绑包输出2个文件(一个未分类和缩小的捆绑包).
var outFolder = __dirname + '\\Scripts\\dist';
var appBundles = [
{ scripts: ['Scripts/Common/**/*.js'], output: 'eStore.common.js' },
{ scripts: ['Scripts/Checkout/**/*.js'], output: 'eStore.checkout.js' },
{ scripts: ['Scripts/ProductDetail/**/*.js'], output: 'eStore.product.js' }
];
gulp.task('bundle', bundle);
gulp.task('minify', ['bundle'], minify); // this one doesn't work
gulp.task('minifyOnly', minify); // this one works
function bundle() {
appBundles.forEach(function (appBundle) {
gulp.src(appBundle.scripts)
.pipe(concat(appBundle.output))
.pipe(sourcemaps.init())
.pipe(sourcemaps.write(outFolder + '\\maps'))
.pipe(gulp.dest(outFolder))
.on('error', errorHandler);
});
}
function minify() {
appBundles.forEach(function(appBundle) {
var bundleSrc = outFolder + '\\' + appBundle.output;
gulp.src(bundleSrc)
.pipe(rename({ extname: '.min.js' …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Gulp源图来编写文件,但我无法在任何地方看到这些文件.如果在工作树中创建了任何新文件,我会看到它们git status,但没有任何新文件可以找到.
下面是我的gulpfile.js
var gulp = require('gulp'),
sourcemaps = require('gulp-sourcemaps'),
minify = require('gulp-minify'),
concat = require('gulp-concat'),
uglify = require('gulp-uglify');
gulp.task('js', function() {
return gulp.src('src/js/**/*.js')
.pipe(sourcemaps.init())
.pipe(concat('all.js'))
.pipe(uglify())
.pipe(sourcemaps.write())
.pipe(gulp.dest('./public/js'));
});
Run Code Online (Sandbox Code Playgroud)
这是正确的用法吗?从我在别处看到的例子来看,这应该没问题.我还看到这些插件可与源图混合:https://github.com/floridoo/gulp-sourcemaps/wiki/Plugins-with-gulp-sourcemaps-support
我正在使用类语法编写基本的javascript 并尝试使用gulp进行uglify,但是收到此错误:
events.js:72
throw er; //未处理的'错误'事件
我只是使用了mozilla网站上的示例代码:
class Polygon {
constructor(height, width) {
this.height = height;
this.width = width;
}
}
Run Code Online (Sandbox Code Playgroud)
我的gulp文件没什么特别的 - 适用于任何非类js:
// Include gulp
var gulp = require('gulp');
// Include Our Plugins
var jshint = require('gulp-jshint');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
var rename = require('gulp-rename');
// Lint Task
gulp.task('lint', function() {
return gulp.src('js/*.js')
.pipe(jshint())
.pipe(jshint.reporter('default'));
});
// Concatenate & Minify JS
gulp.task('scripts', function() {
return gulp.src('js/*.js')
.pipe(concat('all.js'))
.pipe(gulp.dest('dist/js'))
.pipe(rename('all.min.js'))
.pipe(uglify()) …Run Code Online (Sandbox Code Playgroud) 我gulpfile.js手动编写相对较新.我有一个基于Backbone和Marionette的项目,其中gulp文件到目前为止如下所示:
var gulp = require('gulp');
var $ = require('gulp-load-plugins')();
var browserify = require('browserify');
var del = require('del');
var watchify = require('watchify');
var source = require('vinyl-source-stream');
var stylish = require('jshint-stylish');
var buffer = require('vinyl-buffer');
var _ = require('lodash');
var browserSync = require('browser-sync').create();
var reload = browserSync.reload;
gulp.task('clean', function(cb) {
return del([
'app/tmp'
], cb);
});
gulp.task('html', function() {
return gulp.src('./src/index.html')
.pipe($.plumber())
.pipe(gulp.dest('./dist'));
});
gulp.task('images', function() {
gulp.src(['./src/assets/images/*.jpg', './src/assets/images/*.svg', './src/assets/images/*.gif',
'./src/assets/images/*.png'
])
.pipe(gulp.dest('./dist/images'));
});
gulp.task('vendor-css', function() {
gulp.src(['./src/assets/styles/vendor/*.css'
])
.pipe(gulp.dest('./dist')); …Run Code Online (Sandbox Code Playgroud) 在这个项目中,我使用gulp-uglify版本 3.0.1,我想在输出中保留包含许可证文本的注释。
在项目页面上指出
Most of the minify options from the UglifyJS API are supported.
Run Code Online (Sandbox Code Playgroud)
在UglifyJS 自述文件中指出,为了保留许可证文本
You can pass --comments to retain certain comments in the output. By default it will keep JSDoc-style comments that contain "@preserve", "@license" or "@cc_on" (conditional compilation for IE)
Run Code Online (Sandbox Code Playgroud)
所以我尝试了:
.pipe(uglify({
mangle: true,
output: {
beautify: true,
comments: "all"
}
}))
Run Code Online (Sandbox Code Playgroud)
但由于即使指定也"all"不会产生任何许可证归属注释,我假设 minify 选项的comments行为与命令行参数不同--comments。
我也尝试了这里的preserveComments发现,但只会生成:
[13:37:42] …Run Code Online (Sandbox Code Playgroud) 我在一个项目中使用了Paper.js的Bower包.我正在使用Gulp为浏览器准备项目.但是,有些字符在bower_components/paper/dist/paper-full.min.js中看起来像这样:
\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec...
Run Code Online (Sandbox Code Playgroud)
通过Gulp之后最终会像这样结束:
ªµºÀ-ÖØ-öø-?ˆ-??-????-????-???-???-??-??-??-??-???-??-??-??-??...
Run Code Online (Sandbox Code Playgroud)
导致控制台错误
未捕获的SyntaxError:无效的正则表达式:/ [ªÂÂÂÂÂÂÂÂÂÃÂ-Ã-Ã-Ã-Ãø-ˈ-Ë'Ë-ËËËËËËÍÍÍÍÍÍÍÍÍÍÍÎÎÎΠΊΌΎ-Ρ[更多奇怪的字符]字符类中的范围乱序
这是我的gulp文件的相关块:
var gulp = require('gulp');
var stylus = require('gulp-stylus');
var uglify = require('gulp-uglify');
var concat = require('gulp-concat');
var browserify = require('browserify');
var reactify = require('reactify');
var source = require('vinyl-source-stream');
var jade = require('gulp-jade');
var nib = require('nib');
var del = require('del');
var cfg = require('./cfg.json');
var action = {
clean: function(cb){
del([
['./', cfg.dir.root.dev].join('')
], cb);
},
concatLibs: function(){
gulp.src([
'./bower_components/jquery/dist/jquery.min.js',
'./bower_components/react/react.js',
'./bower_components/when/es6-shim/Promise.js',
'./bower_components/lodash/lodash.min.js',
'./bower_components/postal.js/lib/postal.min.js',
'./bower_components/oboe/dist/oboe-browser.min.js',
'./bower_components/paper/dist/paper-full.min.js'])
.pipe(uglify())
.pipe(concat('lib.js'))
.pipe(gulp.dest(['./', …Run Code Online (Sandbox Code Playgroud) 当我运行webpack uglify插件时,我收到了来自stylus loader/css-loader的大量警告.我该如何解决?webpack成功捆绑了它.
Condition always true [./~/style-loader!./~/css-loader!./~/stylus-loader!./app/<filename>.styl:10,0]
Run Code Online (Sandbox Code Playgroud) 我正在尝试缩小 javascript 代码,其中包含许多空合并运算符 (??) 的实例,但是Unexpected token: operator (?)在解析包含 ?? 的行时,它们似乎都抛出错误。操作员。是否有任何更新的库有效?我尝试了以下方法:
gulp-uglify-es
terser
gulp-uglify
gulp-uglifyes
Run Code Online (Sandbox Code Playgroud) gulp-uglify ×10
gulp ×9
javascript ×5
gulp-concat ×2
uglifyjs ×2
webpack ×2
class ×1
node.js ×1
npm ×1
paperjs ×1
stylus ×1
tvjs ×1
tvml ×1
uglifyjs2 ×1