- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
嗨,如果有人愿意帮助我,我想在我的 nextjs 应用程序上使用 @Decorators,但出现以下错误。
希望有人知道我做错了什么
错误信息:
Syntax error: Support for the experimental syntax 'decorators-legacy' isn't currently enabled:
我正在尝试使用 typeorm/type-graphql 在应用程序子文件夹中生成我的后端。
import {
Field,
ID,
ObjectType,
} from 'type-graphql';
import {
BaseEntity,
ManyToOne,
Column,
CreateDateColumn,
Entity,
PrimaryGeneratedColumn,
UpdateDateColumn,
VersionColumn,
} from 'typeorm';
import { ArrayNotEmpty, ArrayMinSize, IsPositive, Min, IsNotEmpty, ValidateNested, MaxLength, Length, IsArray, IsNumber, Max, ArrayMaxSize, ArrayUnique, IsBase64, IsString } from "class-validator";
// import {User} from '@accounts/typeorm'
// extends interface User {
// documents: [Booking]
// };
// const entities = require('@accounts/typeorm').entities;
// const {User} = entities;
/**
* @export
* @class Booking
* @extends {BaseEntity}
*/
@Entity()
@ObjectType()
export default class Booking extends BaseEntity {
@Field(() => ID)
@PrimaryGeneratedColumn('uuid')
id: string;
@Field(() => String)
@Column()
title: string;
// @Field(() => User)
// @ManyToOne(type => User, user => user.documents)
// author: User;
// @Field(() => Object, { nullable: true })
// // @Column()
// author?: User;
@Field(() => Boolean)
@Column({ default: false })
isPublished: boolean;
@Field(() => ID)
@Column({default: ""})
authorId?: string;
@Field()
@Column()
@IsBase64()
contents: string;
@Field()
@Column({ default:'', nullable: true })
@IsBase64()
merged: string;
@IsArray()
@Max(300,{each: true})
@IsPositive({each: true})
@ArrayUnique()
@ArrayNotEmpty()
@ArrayMinSize(4)
@ArrayMaxSize(4)
@Column("integer", { default: [1, 2, 3, 4], array: true })
@Field(() => [Number!]!)
position: number[];
@Field()
@CreateDateColumn({ type: "timestamp" })
createdAt: Date;
@Field()
@UpdateDateColumn({ type: "timestamp" })
updatedAt: Date;
@Field()
@VersionColumn()
version: number;
@Field(() => String)
@Column({ default: '', nullable: true })
signature: string;
}
babelrc
{
"presets": [
[
"next/babel",
{
"plugin-proposal-decorators": {"legacy": true}
}
]
],
}
next.config.js
module.exports = {
webpack: (config, { buildId, dev, isServer, defaultLoaders, webpack, typescript }) => {
config.experiments = {
topLevelAwait: true,
};
return config
},
}
tsconfig.json
{
"compilerOptions": {
"target": "es2018",
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
"strict": false,
"forceConsistentCasingInFileNames": true,
"noEmit": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"experimentalDecorators": true
},
"exclude": ["node_modules"],
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"]
}
package.json
{
"name": "apollo-server-vercel-demo",
"version": "1.0.0",
"scripts": {
"dev": "next",
"build": "next build",
"start": "next start",
"type-check": "tsc"
},
"main": "pages/index.tsx",
"dependencies": {
"@accounts/graphql-api": "^0.29.0",
"@accounts/password": "^0.29.0",
"@accounts/server": "^0.29.0",
"@accounts/typeorm": "^0.29.0",
"@graphql-modules/core": "^0.7.17",
"@saeris/apollo-server-vercel": "0.3.0",
"@types/node": "14.0.27",
"@types/react": "16.9.46",
"@types/react-dom": "16.9.8",
"@zeit/next-css": "1.0.1",
"apollo-server-express": "^2.16.1",
"class-validator": "^0.12.2",
"express": "^4.17.1",
"graphql": "15.3.0",
"graphql-subscriptions": "^1.1.0",
"next": "9.5.2",
"react": "16.13.1",
"react-dom": "16.13.1",
"type-graphql": "^1.0.0",
"typescript": "3.9.7"
},
"license": "ISC",
"keywords": [],
"description": "",
"devDependencies": {
"@babel/plugin-proposal-class-properties": "^7.10.4",
"@babel/plugin-proposal-decorators": "^7.10.5",
"@babel/plugin-syntax-top-level-await": "^7.10.4",
"@babel/plugin-transform-typescript": "^7.11.0",
"@babel/preset-es2017": "^7.0.0-beta.53",
"@babel/preset-typescript": "^7.10.4",
"@zeit/next-typescript": "^1.1.1",
"babel-plugin-parameter-decorator": "^1.0.16",
"webpack": "^5.0.0-beta.28"
},
"resolutions": {
"webpack": "^5.0.0-beta.28"
}
}
Blockquote
最佳答案
这对我有用npm install --dev --save babel-plugin-transform-typescript-metadata && npm install --save-dev @babel/plugin-proposal-class-properties
创建 .bebelrc 并添加:
{
"presets": ["next/babel"],
"plugins": [
"babel-plugin-transform-typescript-metadata",
["@babel/plugin-proposal-decorators", { "legacy": true }],
["@babel/plugin-proposal-class-properties", { "loose" : true }]
]
}
在您的 tsconfig 中添加:
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
关于babeljs - 如何在 next.config.js 或 babelrc 中启用@experimentalDecorators,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63650836/
我想使用 Ant Design 创建 React 应用程序 在文档中,它说我需要更改 .babelrc 以模块化加载文件,也来自 https://medium.com/@GeoffMiller/how
情况 所以我有一个 .babelrc像这样: { "presets": [ "es2015", "stage-2", "react" ]
我在构建我的发布 apk 时遇到问题。当我安装 lightstreamer-client 模块时出现问题。在他们的网站上,他们说你应该将此行添加到 .babelrc: “忽略”:[ “./node_m
有没有办法将 .babelrc 文件的路径提供给 babel-cli?像这样的东西: babel src --out-dir lib --config random-folder/sub-folder
如何强制 babel 不查看 .babelrc 的父目录? 我有两个 .babelrc文件:./a/.babelrc和 ./a/example/.babelrc . 我在运行 babel在 ./a/e
我对 babel.rc 配置文件有疑问。 我搜索并看到了两个不同的配置文件示例。 { "presets": [["es2015", { "modules": false }]], "plugi
在 Atom 1.18 中,每次我打开编辑器时,我的 .babelrc 文件默认为 JSON 文件类型,这使得语法突出显示看起来很不对。而且我必须不断将它改回 Babel 类型。 如何修复(暂时):
我有一个使用 babel 的项目,我很好奇 .babelrc 文件是否通常被 gitignore。我正在使用一些预设,它们是我在 .babelrc 文件中的 package.json 文件的一部分,所
这是我的 .babelrc 的样子。显然它不起作用,因为 JSON 文件中的正则表达式: { "presets": ["es2015", "react"], "plugins": ["tran
我试过了: { "env": { "development": { "option": { "cacheDirector
所以我开始了一个新的 react-native 项目,并从我之前的项目中复制了 .babelrc 文件。我已经安装了必要的插件,但出现错误 Unknown plugin transform-decor
当 require('babel/register)() 时,即使我告诉它一个自定义的 .babelrc 路径,它仍然会加载原始的 .babelrc 。如何禁止它读取.babelrc? 最佳答案 答案
我的目录结构是这样的: > build > node_modules > webpack.config.js > .babelrc > .gitignore 我的 .babelrc 看
我正在尝试运行 the exhibits在 Deck.gl 项目中。我已经克隆了存储库,切换到 exhibits 目录,然后运行: npm run browserify 这将安装软件包,没有错误,并运
目前正在探索与之相关的 webpack 不同工具。现在我正在使用 Babel 将 ES6 代码转换为 ES5 代码。我发现需要一个包含 Babel 配置的 .babelrc 文件。但是,在Babel的
我在 es2015 中使用 Babel 6 并且 react 需要 babel-preset-es2015 和 babel-preset-react。 我在 .babelrc 中添加了 presets
当我单独运行 babel 时,它会读取 .babelrc 并按预期进行转译。但是,当我使用 webpack 和 babel-loader 运行 webpack 时,它不起作用。 .babelrc {
我正在尝试将 React 添加到一个非常大的解决方案中,但网站上的一个组件使用了 Preact。我当前的 .bablerc 是 { "presets": ["env"], "ignore":
我在 IE 中运行 React 应用程序时遇到问题。于是我安装了一个babel插件并安装了。它在我同事的机器上运行良好,但我遇到了错误。 ReferenceError: Unknown plugin
我正在尝试使用 wepback cli 构建一个非常简单的脚本......几乎: import 'somelib'; import '../mylib'; 我在运行 webpack --output-
我是一名优秀的程序员,十分优秀!