Typescript编译的代码不适用于混淆器

时间:2019-11-12 22:31:05

标签: typescript gulp

我有一个用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»

这是什么意思?

2 个答案:

答案 0 :(得分:3)

https://www.npmjs.com/package/uglify-js上一样:

  
      
  • uglify-js仅支持JavaScript(ECMAScript 5)。
  •   
  • 要缩小ECMAScript 2015或更高版本,请使用Babel等工具进行翻译。
  •   

constES6 ("ES2015") language feature,由于您设置了"target": "es6"而被允许。您可以将target设置为es5,或使用其他工具。

答案 1 :(得分:0)

这意味着uglify不会讲es6。请尝试以下方法:

https://www.npmjs.com/package/gulp-uglify-es