我有一个用Typescript编写的节点项目。我正在尝试通过Gulp使用混淆器。但这似乎不起作用:
这是我的牙龈文件:
const { series, src, dest, task } = require('gulp');
const uglify = require('gulp-uglify');
const javascriptObfuscator = require('gulp-javascript-obfuscator-fixed');
function CopyFile(){
return src(['debug/*.js','debug/*.json'])
.pipe(dest('dist'));
};
function Obfuscate(){
return src('dist/*.js')
.pipe(javascriptObfuscator())
.pipe(uglify());
};
task("Release", series(CopyFile, Obfuscate));
这是我的tsconfig
{
"compilerOptions": {
"module": "commonjs",
"target": "es6",
"sourceMap": true,
"outDir": "debug",
"resolveJsonModule": true
},
"exclude": [
"node_modules"
]
}
所以顺序是,打字稿编译,然后复制到dist,然后进行模糊处理。这是我得到的错误:
GulpUglifyError: unable to minify JavaScript
Caused by: SyntaxError: Unexpected token: keyword «const»
这是什么意思?
答案 0 :(得分:3)
如https://www.npmjs.com/package/uglify-js上一样:
uglify-js
仅支持JavaScript(ECMAScript 5)。- 要缩小ECMAScript 2015或更高版本,请使用Babel等工具进行翻译。
const
是ES6 ("ES2015") language feature,由于您设置了"target": "es6"
而被允许。您可以将target
设置为es5
,或使用其他工具。
答案 1 :(得分:0)
这意味着uglify不会讲es6。请尝试以下方法: