Fuse-Box 和 Typescript:意外的标记 {

Fuse-Box and Typescript: unexpected token {

下面是我的 fuse.ts 文件的顶部

import { CSSPluginOptions } from 'fuse-box/plugins/stylesheet/CSSplugin';
import { argv } from 'yargs';
import * as path from 'path';
import {
    CSSPlugin, CSSResourcePlugin, EnvPlugin, FuseBox, QuantumPlugin, 
    SassPlugin, Sparky, WebIndexPlugin, CopyPlugin, CSSModules
} from 'fuse-box';
import { SparkyFile } from 'fuse-box/sparky/SparkyFile';
import * as fs from 'fs';
const express = require('express');

class SparkyContext
{

我收到以下错误

import { argv } from 'yargs';

^

SyntaxError: Unexpected token {

所以第一个 import 语句没问题,然后它抱怨第二个。尝试四处移动一些导入,其中大多数都有相同的错误,抱怨 * 或 { unexpected after import.

我的tsconfig.json在下面,非常基本和标准。

{
  "compilerOptions": {
    "baseUrl": "./src",
    "jsx": "react",
    "target": "es5",
    "module": "es2015",
    "sourceMap": true,
    "importHelpers": false,
    "removeComments": true,
    "moduleResolution": "node",
    "lib": ["es2015", "es2015.iterable", "dom"],
    "experimentalDecorators": true,
    "allowSyntheticDefaultImports" : true
  }
} 

不太确定是什么问题,也不确定到哪里查看。如果我确实将它们更改为 require 语句,它仍然可以工作。因此,由于某种原因,它似乎不喜欢 tsconfig.json。 package.json 中没有覆盖属性或任何其他可能导致问题的属性。

ts-node -F -O '{\"module\": \"commonjs\"}' ./fuse.ts serve

在此处添加编译器选项有效。有点奇怪,他们在这里是必要的。可能是因为 ts-node 的全局安装,可能没有在项目中获取我的 tsconfig.json。

会做更多的研究并进行相应的更新,但与此同时,这让我可以继续前进:)