为什么 gulp-uglify breaks backendless?
Why gulp-uglify breaks backendless?
我真的不知道,我应该给你看哪部分代码。
我有一个webApp(reactJs、flux、react-router、nodejs+express server);
它工作正常,直到我 uglify main.js 文件。
这里"search"通过后端数据库(http://backendless.com/documentation/data/js/data_search_and_query.htm)
var dataQuery = {
condition: conditions,
options: {
pageSize: 18,
relationsDepth: 1
}
}
如果我不在我的构建中使用 gulp uglify,它工作正常。
如果我确实使用 uglify,我会收到此错误:
GET https://api.backendless.com/v1/data/t?pageSize=18&relationsDepth=1 404(未找到)
为什么会这样?
完整版:
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:
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'))
})
你能给我 .js 文件中的代码吗,你从哪里进行查询以查找数据对象。我认为您确实在另一个 class 中进行搜索。
GET https://api.backendless.com/v1/data/t?pageSize=18&relationsDepth=1 404 (Not Found)
此请求发送至名为 t
的 table。我很确定你的 table 名字不是 t
.
正如我们在 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.
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.
此致,
马克
我真的不知道,我应该给你看哪部分代码。
我有一个webApp(reactJs、flux、react-router、nodejs+express server); 它工作正常,直到我 uglify main.js 文件。
这里"search"通过后端数据库(http://backendless.com/documentation/data/js/data_search_and_query.htm)
var dataQuery = {
condition: conditions,
options: {
pageSize: 18,
relationsDepth: 1
}
}
如果我不在我的构建中使用 gulp uglify,它工作正常。 如果我确实使用 uglify,我会收到此错误: GET https://api.backendless.com/v1/data/t?pageSize=18&relationsDepth=1 404(未找到)
为什么会这样?
完整版:
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:
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'))
})
你能给我 .js 文件中的代码吗,你从哪里进行查询以查找数据对象。我认为您确实在另一个 class 中进行搜索。
GET https://api.backendless.com/v1/data/t?pageSize=18&relationsDepth=1 404 (Not Found)
此请求发送至名为 t
的 table。我很确定你的 table 名字不是 t
.
正如我们在 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.
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.
此致, 马克