如何让 Parcel 编译带有“classProperties”的 Phaser 游戏?

问题描述

我完成了一个 Phaser 游戏教程,使用以下命令链接到 Web 上的 Phaser.js 库时运行良好: <script src="//cdn.jsdelivr.net/npm/phaser@3.50.1/dist/phaser.js"></script>

但是现在当我尝试在本地使用带有 npm 的 Phaser 和 Parcel 来运行游戏时,我收到编译错误@parcel/transformer-js: This experimental Syntax requires enabling the parser plugin: 'classproperties'

这是由这种类型的代码引起的:

export default class Game extends Phaser.Scene
{
    /** @type {Phaser.Physics.Arcade.Sprite} */
    player;

我在 Google 上找不到任何东西,除了有人说要将插件添加到我的 package.json 文件中,所以现在我有

"dependencies": 
{
    "@babel/plugin-proposal-class-properties": "^7.13.0","parcel": "^2.0.0-nightly.548","phaser": "^3.53.1"
}

我还能做些什么来尝试解决这个问题?

解决方法

您需要在项目的根目录中添加一个包含以下代码的 .babelrc 文件:

{
    "plugins": 
    [
      "@babel/plugin-proposal-class-properties"
    ]
}

来源:https://robkendal.co.uk/blog/2019-05-13-configure-parcel-js-and-babel-to-use-javascript-proposal-class-properties