首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >语法错误:编译的typescript上的意外标记{

语法错误:编译的typescript上的意外标记{
EN

Stack Overflow用户
提问于 2018-12-27 09:22:45
回答 3查看 3.3K关注 0票数 4

当我尝试运行我编译的typescript代码时,我得到一个语法错误:

代码语言:javascript
运行
复制
\entity\Config.ts:1
(function (exports, require, module, __filename, __dirname) { import { Entity, PrimaryGeneratedColumn, Column, BaseEntity } from "typeorm";
                                                                     ^

SyntaxError: Unexpected token {

但是当我运行typescript代码时

代码运行得很好。

所以我做了一些日志记录来找出问题发生在哪里,它似乎是在我点击的时候发生的

方法在TypeORM上实现。我刚接触Typescript和TypeORM库。

实体/config.ts

代码语言:javascript
运行
复制
import { Entity, PrimaryGeneratedColumn, Column, BaseEntity } from "typeorm";

@Entity()
export class Config extends BaseEntity {
  @PrimaryGeneratedColumn()
  id: number;

  @Column()
  app: String;

  @Column()
  endpoint: String;

  @Column()
  token: String;
}

server.ts

代码语言:javascript
运行
复制
import { createConnection } from "typeorm";

// Database connected
createConnection()
  .then(() => {
    console.log("Test");
  })
  .catch(err => {
    console.log(err);
  });

index.ts

代码语言:javascript
运行
复制
require("reflect-metadata");
require("dotenv/config");
require("./server");

package.json依赖项

代码语言:javascript
运行
复制
"scripts": {
    "dev:server": "ts-node src",
    "dev": "nodemon -e ts -w src -x npm run dev:server",
    "build:server": "tsc",
    "start:server": "node build/index.js",
    "start": "npm run build:server && npm run start:server"
  },
  "keywords": [],
  "author": "",
  "license": "MIT",
  "devDependencies": {
    "@types/axios": "^0.14.0",
    "@types/graphql": "^14.0.3",
    "@types/node": "^10.12.18",
    "@types/winston": "^2.4.4",
    "nodemon": "^1.18.9",
    "ts-node": "^7.0.1",
    "typescript": "^3.2.2"
  },
  "dependencies": {
    "apollo-server-express": "^2.3.1",
    "axios": "^0.18.0",
    "dotenv": "^6.2.0",
    "express": "^4.16.4",
    "graphql": "^14.0.2",
    "pg": "^7.7.1",
    "reflect-metadata": "^0.1.12",
    "sequelize": "^4.42.0",
    "typeorm": "^0.2.9",
    "winston": "^3.1.0"
  }
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-12-31 04:20:20

因此,TypeORM Slack (回答这个问题时使用uladzimir )上的一个成员解决了这个问题。问题出在我的ormconfig文件上。

问题:

代码语言:javascript
运行
复制
"entities": ["src/database/entity/**/*.ts", "build/database/entity/**/*.js"],
  "migrations": [
    "src/database/migration/**/*.ts",
    "build/database/migration/**/*.js"
  ],
  "subscribers": [
    "src/database/subscriber/**/*.ts",
    "build/database/subscriber/**/*.js"
  ],
  "cli": {
    "entitiesDir": "src/entity",
    "migrationsDir": "src/migration",
    "subscribersDir": "src/subscriber"
  }

解决方案:

代码语言:javascript
运行
复制
"entities": ["build/database/entity/**/*.js"],
  "migrations": ["build/database/migration/**/*.js"],
  "subscribers": ["build/database/subscriber/**/*.js"],
  "cli": {
    "entitiesDir": "src/entity",
    "migrationsDir": "src/migration",
    "subscribersDir": "src/subscriber"
  }

出于某种原因,我认为我必须添加

用于测试/开发目的的文件,但事实并非如此,是什么导致了这个问题。我不太确定为什么会导致这个问题,但如果我发现了,我会把它作为对这个答案的评论。

感谢大家在这个问题上的帮助。

票数 7
EN

Stack Overflow用户

发布于 2019-06-24 19:16:35

我设法解决了这个问题,方法是删除

文件并将数据库配置传递到

函数。

示例:

代码语言:javascript
运行
复制
import { User } from './entity'
// import every other entity you have
// .......

await createConnection({
        type: 'sqlite',
        database: 'database.sqlite',
        synchronize: true,
        logging: true,
        entities: [
            User // pass your entities in here
        ]
    })
票数 2
EN

Stack Overflow用户

发布于 2021-03-02 07:07:38

如果你使用的是TypeOrm,你可以使用这个作为你的配置

代码语言:javascript
运行
复制
entities: [__dirname + '/models/**/*.entity.{ts,js}'],
  migrations: [__dirname + '/migrations/**/*.{ts,js}'],
  subscribers: [__dirname + '/subscriber/**/*.{ts,js}'],

添加

正确解析模块取决于您是在dev (解析为ts版本)还是prod (解析为js版本)中运行它

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53938797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档