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.tsexport 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