在我的 tsconfig.js 中添加了decko
(对装饰器的支持)并添加了对experimetalDecoractors
的支持并在程序包中使用了@babel/plugin-proposal-decorators
之后.json 。
我的now.sh构建应该在创建PR后良好地构建和部署,这也是因为该应用在本地运行良好。
该构建实际上因以下错误而中断:
当前未启用对实验语法“ decorators-legacy”的支持
公关: https://github.com/Futuratum/moonholdings.io/pull/27
内部版本: https://zeit.co/leongaban/moonholdings/9aacr3qhs
我实际上在本地也有同样的错误,但是我通过添加@babel/plugin-proposal-decorators
包并像下面这样更新了package.json来解决了这个问题:
"babel": {
"env": {
"development": {
"presets": [
"next/babel"
],
"plugins": [
[
"styled-components",
{
"ssr": true,
"displayName": true
}
],
[
"@babel/plugin-proposal-decorators",
{
"legacy": true
}
]
]
},
我还尝试将babel配置移到.bablerc文件中,但我的构建仍然中断。
答案 0 :(得分:3)
Next.JS NX 用户请注意,目前在他们的 github 上有一个针对此错误的公开 (12/2020) issue:github.com/nrwl/nx/issues/3322
我尝试组合使用多种解决方案来解决此问题,但尚未成功。
答案 1 :(得分:1)
弄清楚了,我需要将插件添加到配置的production
部分中,以使构建工作X_x
{
"env": {
"development": {
"presets": [
"next/babel",
"@zeit/next-typescript/babel"
],
"plugins": [
[
"styled-components",
{
"ssr": true,
"displayName": true
}
],
[
"@babel/plugin-proposal-decorators",
{
"legacy": true
}
]
]
},
"production": {
"presets": [
"next/babel",
"@zeit/next-typescript/babel"
],
"plugins": [
[
"styled-components",
{
"ssr": true,
"displayName": true
}
],
[
"@babel/plugin-proposal-decorators",
{
"legacy": true
}
]
]
},
答案 2 :(得分:0)
我最终会看到类似的内容,但我认为您可以做到这一点:
{
"presets": ["next/babel"],
"plugins": [["@babel/plugin-proposal-decorators", { "legacy": true }]],
"env": {...}
}
似乎您可以为所有内容提供全局插件,而不是为每一个都设置全局插件。否则会打哈欠。