typescript - Typescript 编译的代码不适用于混淆器
问题描述
我有一个用 Typescript 编写的节点项目。我正在尝试通过 Gulp 使用混淆器。但这似乎不起作用:
这是我的 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»
这是什么意思?
解决方案
如https://www.npmjs.com/package/uglify-js:
uglify-js
仅支持 JavaScript (ECMAScript 5)。- 要缩小 ECMAScript 2015 或更高版本,请使用 Babel 等工具进行转译。
const
是一个ES6 ("ES2015") 语言特性,因为你设置了"target": "es6"
. 您可以将 设置target
为es5
,或使用其他工具。
推荐阅读
- ios - 如何删除 main.storyboard 的元素
- reactjs - 反应如何替换整个 url 位置而不是路径名堆叠
- android-studio - 在成功构建之前,设计编辑器不可用...此错误显示在我的 android studio activity_main.xml 中
- c# - EFCore 2.2.6 与 5.0.8 无跟踪
- python - Matplotlib 导入错误:TypeError:预期的 str、字节或 os.PathLike 对象,而不是 WindowsPath
- javascript - 根据其他列中的值更新 DynamoDB 中的项目
- powershell - 如何在 VS 代码中保留每个项目的 PowerShell 命令(历史记录键)?
- javascript - php。如果 Cookie 存在,请执行此操作 - 否则执行此操作
- flutter - Flutter - Cloudinary 如何获取上传的图片网址?
- typo3 - TYPO3 从 v9 升级到 V10 延迟加载错误