我正在尝试使phaser html5游戏在safari上正常运行,但由于此错误而不能。
SyntaxError: Unexpected token 'const'
我尝试在tsconfig中使用目标'es2015',但这会给我一个Map is undefined
的运行时错误
这是我的tsconfig.json文件
{
"compilerOptions": {
"baseUrl": ".",
"typeRoots": [
"./framework/types/",
"./node_modules/phaser/types/"
],
"types": [
"node"
],
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"target": "es6",
"module": "commonjs",
"sourceMap": true,
"resolveJsonModule": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"moduleResolution": "node"
},
"exclude": [
"node_modules",
"dist"
],
"files": [
"node_modules/phaser/types/phaser.d.ts",
"node_modules/phaser/types/spine.d.ts",
"framework/src/extra.d.ts"
]
}
这是我的装载机
var tsLoader = {
test: /\.ts$/,
loaders: ['babel-loader', 'awesome-typescript-loader'],
include: [path.join(localDirectory, 'src'), path.join(localDirectory, 'framework')],
};
如何使const工作,或者如果不可能,如何在Webpack编译中包含Array.map属性?我尝试更改目标并使用指定的libs添加lib [],但是无论我尝试了什么,我都会遇到这两个错误之一。
编辑#1
所以我把它缩小到了我的terser插件
var terserPlugin = new TerserPlugin({
cache: true,
parallel: true,
terserOptions: {
ecma: 6,
output: {
comments: false
},
compress: {
drop_console: true,
},
},
});
任何能够告诉我为什么我在游戏上使用terser插件的人都不再能在Safari中工作的原因。