简体   繁体   English

为什么gulp-uglify打破无尽?

[英]Why gulp-uglify breaks backendless?

I actually have no idea, which part of code should i show you. 我实际上不知道,我应该向您展示代码的哪一部分。

I have a webApp (reactJs, flux, react-router, nodejs+express server); 我有一个webApp(reactJs,flux,react-router,nodejs + express服务器); It works fine, right untill i uglify main.js file. 它工作正常,直到我uglify main.js文件。

Here the "search" through backendless database ( http://backendless.com/documentation/data/js/data_search_and_query.htm ) 在这里,“搜索”通过无后端数据库( http://backendless.com/documentation/data/js/data_search_and_query.htm

 var dataQuery = {
        condition: conditions,
        options: {
          pageSize: 18,
          relationsDepth: 1
        }
      }

If I don't use gulp uglify in my Build, it works fine. 如果我在Build中不使用gulp uglify,它将正常工作。 If I do use uglify, I'm getting this error: GET https://api.backendless.com/v1/data/t?pageSize=18&relationsDepth=1 404 (Not Found) 如果我确实使用uglify,则会出现此错误:GET https://api.backendless.com/v1/data/t?pageSize=18&relationsDepth=1 404(未找到)

Why does it happen? 为什么会发生?

full version: 完整版本:

GET https://api.backendless.com/v1/data/t?pageSize=18&relationsDepth=1 404 (Not Found)
e._ajax_for_browser.o @ main.js:15
e._ajax_for_browser.a.ignoreCache @ main.js:15
e._ajax_for_browser @ main.js:15
C.find @ main.js:15
r @ main.js:15
(anonymous function) @ main.js:15
r.$Dispatcher_invokeCallback @ main.js:1
r.dispatch @ main.js:1
a.handleViewAction @ main.js:15
o.search @ main.js:12
r.createClass._getInitItems @ main.js:13
r.createClass._getAllEstateItems @ main.js:13
l.addons.update.$merge.searchByParams @ main.js:15
r.createClass.componentDidMount @ main.js:13
o.notifyAll @ main.js:3
m.close @ main.js:9
a.closeAll @ main.js:12
a.perform @ main.js:12
h @ main.js:9
a.perform @ main.js:12
d.batchedUpdates @ main.js:8
o @ main.js:11
$._renderNewRootComponent @ main.js:9
r.measure.i @ main.js:9
$.render @ main.js:9
r.measure.i @ main.js:9
(anonymous function) @ main.js:15
u.createClass.statics.run.L @ main.js:2
(anonymous function) @ main.js:2
(anonymous function) @ main.js:2
(anonymous function) @ main.js:2
r.to @ main.js:2
(anonymous function) @ main.js:2
r.from @ main.js:2
u.createClass.statics.dispatch @ main.js:2
u.createClass.statics.refresh @ main.js:2
u.createClass.statics.run @ main.js:2
r @ main.js:3
250.../jsLibs/1. backendless.min @ main.js:15
a @ main.js:1
e @ main.js:1
(anonymous function) @ main.js:1

UPD#1 Gulpfile.js: UPD#1 Gulpfile.js:

var gulp = require('gulp');
var browserify = require('gulp-browserify');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
var uglifycss = require('gulp-uglifycss');




gulp.task('browserify', function() {
    gulp.src('src/js/main.js')
      .pipe(browserify({transform: 'reactify'}))
      .pipe(concat('main.js'))
      .pipe(gulp.dest('dist/js'));
});

gulp.task('uglifyjs', function() {
  gulp.src('dist/js/main.js')
      .pipe(uglify())
      .pipe(gulp.dest('dist/js')) 
});
gulp.task('copy', function() {
    gulp.src('src/index.html')
      .pipe(gulp.dest('dist'));
    gulp.src('src/assets/**/*.*')
      .pipe(gulp.dest('dist/assets'));
});

gulp.task('default',['browserify', 'copy']);

gulp.task('watch', function() {
    gulp.watch('src/**/*.*', ['default']);
});

gulp.task('js', function () {
  gulp.src('src/jsLibs/*.js')
    .pipe(concat('scripts.js'))
    .pipe(uglify())
    .pipe(gulp.dest('dist/js'))
})

gulp.task('css', function () {
  gulp.src('src/css/*.css')
    .pipe(concat('styles.css'))
    .pipe(uglifycss())
    .pipe(gulp.dest('dist/css'))
})

Can you give me please code from .js file where from you make query to find data object. 您能给我.js文件中的代码吗,从中进行查询以查找数据对象。 I think you do searching in another class. 我想您确实在另一堂课中搜索。

GET https://api.backendless.com/v1/data/t?pageSize=18&relationsDepth=1 404 (Not Found)

This request goes to table named t . 该请求将转到名为t表。 I'm pretty sure your table name is not t . 我很确定您的表名不是t

As it was answered on our support forum : 正如我们在支持论坛上回答的那样:

Our JS SDK forms the url from the name of your constructor-function, thus if you rename it - the request will query another table, and for now there is no way to change this logic from your code. 我们的JS SDK从构造函数的名称中形成url,因此,如果重命名该URL,则该请求将查询另一个表,目前尚无法从代码中更改此逻辑。

So you're looking in the right direction: the most suitable solution in this case will be to exclude these constructor-functions names from uglify's obfuscation list. 因此,您的方向是正确的:在这种情况下,最合适的解决方案是从uglify的混淆列表中排除这些构造函数的名称。

Regards, Mark 问候,马克

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM