通过babel进行Webpack转译

时间:2019-10-15 21:11:48

标签: typescript webpack babel-loader es6-map

我正在尝试使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中工作的原因。

0 个答案:

没有答案