node.js - uventet token import nodejs, typescript


Jeg bruker typescript, gruntjs, typeorm, typeorm-model-generator i prosjektet mitt for å utvikle en Web API. Når jeg prøver å starte appen min får jeg en unexpected token import-feil, men det er fordi den leser der jeg har mine typescript-filer når den egentlig burde lese dist-mappen som er der alle js-filene mine er, og denne feilen skjer bare hvis jeg legger til koden som kreves for å etablere tilkoblingen til databasen min.

app.ts
export class Server {

 public app: express.Application; 

 public static bootstrap(): Server {
     return new Server();
 }

 constructor() {
    this.app = express();

    this.config();
    this.api();
 }

  private config(): void {
    this.app.use(express.static(path.join(__dirname, "public")));

    this.app.use(logger('dev'));
    this.app.use(bodyParser.json());
    this.app.use(bodyParser.urlencoded({
        extended: true
    }));

    this.app.use(function (error: any,
        request: express.Request, response: express.Response,
        next: express.NextFunction) {
            console.log(error);
            error.status = 404;
            response.json(error);
        });
  }

  private api(): void {
   // code that causes error
   // the output I recieve says
   // ./src/entity/myEntity.ts:1 unexpected token import
   // but if I remove it everything works fine
   typeorm.createConnection().then(async connection => {
        console.log("Conexion establecida");
    }).catch(error => {
        console.log(error)
    });
  }

}

Dette er min tsconfig.json

{
    "compilerOptions": {
        "lib": [
            "es5",
            "es6"
        ],
        "target": "es5",
        "module": "commonjs",
        "moduleResolution": "node",
        "rootDir": "src",
        "outDir": "./dist/",
        "experimentalDecorators": true,
        "emitDecoratorMetadata": true,
        "sourceMap": false,
        "noImplicitAny": false
    },
    "include": [
        "src/**/*"
    ],
    "exclude": [
        "node_modules",
        "**/*.spec.ts"
    ]
}

Hva gjør jeg galt? Bør jeg ta mitt eget liv allerede?

Svar #1

Jeg støtte nylig på dette problemet. Problemet er sannsynligvis i din ormconfig.json. Den genererte ormconfig.json peker til enhetene i src-mappen din som de som skal brukes, i stedet for entity-js-filene i dist- eller build-mappen din. Sjekk ut spørsmålet jeg også stilte: SyntaxError: Unexpected token import typeORM entity

Relaterte artikler