Typeorm 和 Typescript EntityMetadataNotFoundError 编译 Javascript 文件
Typeorm & Typescript EntityMetadataNotFoundError On Compiled Javascript Files
我正在尝试使用 typescript 使用 nodejs & express & typeorm 构建后端。
我有一个问题,当我 运行 使用 nodemon
应用程序时,它按预期工作。但是,当我从 node app.js
开始编译 javascript 文件并将请求发送到任何端点时,它会给我错误 EntityMetadataNotFoundError
。我怎样才能通过这个问题?
ormconfig.json
{
"type": "postgres",
"host": "localhost",
"port": 5432,
"username": "",
"password": "",
"database": "",
"entities": [
"dist/src/entity/**/*.js",
"src/entity/**/*.ts"
],
"migrations": [
"dist/src/migration/**/*.js",
"src/migration/**/*.ts"
],
"subscribers": [
"dist/src/subscriber/**/*.js",
"src/subscriber/**/*.ts"
],
"cli": {
"entitiesDir": "dist/src/entity",
"migrationsDir": "dist/src/migration",
"subscribersDir": "dist/src/subscriber"
}
}
我不知道是否需要,但这里是 tsconfig.json
{
"compilerOptions": {
"lib": [
"es5",
"es6",
"es7",
"es2015",
"es2016",
"es2017",
"es2018",
"esnext"
],
"target": "es5",
"module": "commonjs",
"moduleResolution": "Node",
"outDir": "dist",
"sourceMap": true,
"experimentalDecorators": true,
"emitDecoratorMetadata": true
}
}
我的构建脚本是 tsc --project .
感谢任何帮助,谢谢。
好的,我知道了。 tsc --project .
命令未将 ormconfig.json
文件复制到 dist
目录。我改变了 tsconfig.json
现在可以使用了!
我添加了 include
和 resolveJsonModule
属性。
tsconfig.json
{
"compilerOptions": {
"lib": [
"es5",
"es6",
"es7",
"es2015",
"es2016",
"es2017",
"es2018",
"esnext"
],
"target": "es5",
"module": "commonjs",
"moduleResolution": "Node",
"resolveJsonModule": true,
"outDir": "dist",
"sourceMap": true,
"experimentalDecorators": true,
"emitDecoratorMetadata": true
},
"include": [
"ormconfig.json"
]
}
我 运行 遇到了与 typeorm:"0.35" 相同的问题,它不再使用 ormconfig.json。
在我的例子中,解决方案是将路径添加到构建文件夹中的实体,例如这个“entities: ["build/entity/*.js"]" 而不是开发路径 "entities: ["src/entity/*.ts"]"
注意 js 与 ts,以及构建与 src。
我正在尝试使用 typescript 使用 nodejs & express & typeorm 构建后端。
我有一个问题,当我 运行 使用 nodemon
应用程序时,它按预期工作。但是,当我从 node app.js
开始编译 javascript 文件并将请求发送到任何端点时,它会给我错误 EntityMetadataNotFoundError
。我怎样才能通过这个问题?
ormconfig.json
{
"type": "postgres",
"host": "localhost",
"port": 5432,
"username": "",
"password": "",
"database": "",
"entities": [
"dist/src/entity/**/*.js",
"src/entity/**/*.ts"
],
"migrations": [
"dist/src/migration/**/*.js",
"src/migration/**/*.ts"
],
"subscribers": [
"dist/src/subscriber/**/*.js",
"src/subscriber/**/*.ts"
],
"cli": {
"entitiesDir": "dist/src/entity",
"migrationsDir": "dist/src/migration",
"subscribersDir": "dist/src/subscriber"
}
}
我不知道是否需要,但这里是 tsconfig.json
{
"compilerOptions": {
"lib": [
"es5",
"es6",
"es7",
"es2015",
"es2016",
"es2017",
"es2018",
"esnext"
],
"target": "es5",
"module": "commonjs",
"moduleResolution": "Node",
"outDir": "dist",
"sourceMap": true,
"experimentalDecorators": true,
"emitDecoratorMetadata": true
}
}
我的构建脚本是 tsc --project .
感谢任何帮助,谢谢。
好的,我知道了。 tsc --project .
命令未将 ormconfig.json
文件复制到 dist
目录。我改变了 tsconfig.json
现在可以使用了!
我添加了 include
和 resolveJsonModule
属性。
tsconfig.json
{
"compilerOptions": {
"lib": [
"es5",
"es6",
"es7",
"es2015",
"es2016",
"es2017",
"es2018",
"esnext"
],
"target": "es5",
"module": "commonjs",
"moduleResolution": "Node",
"resolveJsonModule": true,
"outDir": "dist",
"sourceMap": true,
"experimentalDecorators": true,
"emitDecoratorMetadata": true
},
"include": [
"ormconfig.json"
]
}
我 运行 遇到了与 typeorm:"0.35" 相同的问题,它不再使用 ormconfig.json。
在我的例子中,解决方案是将路径添加到构建文件夹中的实体,例如这个“entities: ["build/entity/*.js"]" 而不是开发路径 "entities: ["src/entity/*.ts"]" 注意 js 与 ts,以及构建与 src。