Error: Missing class properties transform
Error: Missing class properties transform
Error: Missing class properties transform
Test.js
:
export class Test extends Component {
constructor (props) {
super(props)
}
static contextTypes = {
router: React.PropTypes.object.isRequired
}
.babelrc
:
{
"presets": ["es2015", "react", "stage-0"],
"plugins": ["transform-class-properties"]
}
package.json
:
"babel-core": "^6.5.1",
"babel-eslint": "^4.1.8",
"babel-loader": "^6.2.2",
"babel-plugin-react-transform": "^2.0.0",
"babel-plugin-transform-class-properties": "^6.5.2",
"babel-preset-es2015": "^6.5.0",
"babel-preset-react": "^6.5.0",
"babel-preset-stage-0": "^6.5.0",
"babel-register": "^6.5.2",
我在网上搜索了一下,所有修复都围绕着:升级到 babel6,将 "stage-0" 的顺序切换到 "es2015" 之后。这些我都做过。
好吧,终于想通了,在我的 webpack.config.js
我有:
module: {
loaders: [
{
test: /\.js?$/,
exclude: /(node_modules|bower_components)/,
loaders: [
'react-hot',
'babel?presets[]=react,presets[]=es2015,presets[]=stage-0'
]
}
]
}
'babel?presets[]=stage-0,presets[]=react,presets[]=es2015'
必须以与 .babelrc
相同的方式处理,将 stage-0 切换到 es2015 之后,它可以完美编译。
@speak 说的对,但是你需要换个顺序
loaders: [
'react-hot',
'babel?presets[]=react,presets[]=es2015,presets[]=stage-0'
]
我遇到这个错误是因为我使用的是 stage-3
而不是 stage-0
。
由于使用环境预设,我也遇到了这个错误:
"presets": [ "react", "es2015", "stage-0", ["env", {
"modules": false
}]],
在我删除环境预设后,它运行良好
我在使用 koa-react-view 时遇到了同样的问题。从这些答案中得到启发,并最终使用 koa server.js
:
中的以下代码修复了它
const register = require('babel-register');
register({
presets: ['es2015', 'react', 'stage-0'],
extensions: ['.jsx']
});
您需要安装@babel/plugin-proposal-class-properties
:
npm install @babel/plugin-proposal-class-properties --save-dev
或
yarn add @babel/plugin-proposal-class-properties --dev
并将以下内容添加到您的 Babel 配置文件中 - 通常是 .babelrc
或 babel.config.js
.
"plugins": ["@babel/plugin-proposal-class-properties"],
终于发现,要消除Laravel-Mix项目中的这个错误,在webpack.mix.js
中添加以下代码
mix.webpackConfig({
module: {
rules: [
{
test: /\.js?$/,
exclude: /(node_modules|bower_components)/,
loaders: [
'babel-loader?presets[]=react,presets[]=es2015,presets[]=stage-0'
]
}
],
}
});
我遇到了同样的错误,我在我的 .babelrc 中正确地订购了我的插件,但它仍然存在。删除我在我的 webpack 加载器中定义的预设参数修复了它。
以前的 webpack 配置:
module: {
rules: [
{
test: /.jsx?$/,
loader: 'babel-loader',
include: path.join(__dirname, 'src'),
exclude: /node_modules/,
query: {
presets: ['es2015', 'react']
}
}
]
}
工作 webpack 配置:
module: {
rules: [
{
test: /.jsx?$/,
loader: 'babel-loader',
include: path.join(__dirname, 'src'),
exclude: /node_modules/
}
]
}
我的修复方法是在 webpack.config.js 的选项属性中定义 'transform-class-properties' 插件,我正在使用 babel V6
rules:[
.....,
{
test: /\.(js|jsx)$/,
exclude: /(node_modules|bower_components)/,
loader: 'babel-loader',
options: { plugins: ['transform-class-properties']}
}
]
以防万一有人仍然面临同样的问题,
以下博客 post 确实帮助了我:
https://devblogs.microsoft.com/typescript/typescript-and-babel-7/
就我而言(babel 7.9.6、typescript 3.9.2、webpack 4.43.0)我必须执行以下操作:
运行 以下命令:
npm install --save-dev @babel/preset-typescript @babel/preset-env @babel/plugin-proposal-class-properties @babel/plugin-proposal-object-rest-spread
创建.babelrc文件(是的,我以前没有,但它确实工作得很好) 内容如下:
{
"presets": [
"@babel/env",
"@babel/preset-typescript"
],
"plugins": [
"@babel/proposal-class-properties",
"@babel/proposal-object-rest-spread"
]
}
我 运行 陷入这个问题是因为我不假思索地将一些箭头函数放入我的 类 之一。一旦我将箭头函数更改为常规 function/method 定义,错误就解决了。
如果您使用的是 Babel 7.4 或更新版本,@babel/pollify
已弃用。
安装 core-js
、regenerator-runtime
、@babel/plugin-proposal-class-properties
和 babel-plugin-transform-class-properties
软件包。
yarn add core-js regenerator-runtime @babel/plugin-proposal-class-properties babel-plugin-transform-class-properties --dev
// or
npm install core-js regenerator-runtime @babel/plugin-proposal-class-properties babel-plugin-transform-class-properties --save-dev
然后,添加到.babelrc
或babel.config.js
"plugins": ["@babel/plugin-proposal-class-properties"],
最后,在您的主 js 文件中添加以下行:
import "core-js/stable";
import "regenerator-runtime/runtime";
取自:
Error: Missing class properties transform
Test.js
:
export class Test extends Component {
constructor (props) {
super(props)
}
static contextTypes = {
router: React.PropTypes.object.isRequired
}
.babelrc
:
{
"presets": ["es2015", "react", "stage-0"],
"plugins": ["transform-class-properties"]
}
package.json
:
"babel-core": "^6.5.1",
"babel-eslint": "^4.1.8",
"babel-loader": "^6.2.2",
"babel-plugin-react-transform": "^2.0.0",
"babel-plugin-transform-class-properties": "^6.5.2",
"babel-preset-es2015": "^6.5.0",
"babel-preset-react": "^6.5.0",
"babel-preset-stage-0": "^6.5.0",
"babel-register": "^6.5.2",
我在网上搜索了一下,所有修复都围绕着:升级到 babel6,将 "stage-0" 的顺序切换到 "es2015" 之后。这些我都做过。
好吧,终于想通了,在我的 webpack.config.js
我有:
module: {
loaders: [
{
test: /\.js?$/,
exclude: /(node_modules|bower_components)/,
loaders: [
'react-hot',
'babel?presets[]=react,presets[]=es2015,presets[]=stage-0'
]
}
]
}
'babel?presets[]=stage-0,presets[]=react,presets[]=es2015'
必须以与 .babelrc
相同的方式处理,将 stage-0 切换到 es2015 之后,它可以完美编译。
@speak 说的对,但是你需要换个顺序
loaders: [
'react-hot',
'babel?presets[]=react,presets[]=es2015,presets[]=stage-0'
]
我遇到这个错误是因为我使用的是 stage-3
而不是 stage-0
。
由于使用环境预设,我也遇到了这个错误:
"presets": [ "react", "es2015", "stage-0", ["env", {
"modules": false
}]],
在我删除环境预设后,它运行良好
我在使用 koa-react-view 时遇到了同样的问题。从这些答案中得到启发,并最终使用 koa server.js
:
const register = require('babel-register');
register({
presets: ['es2015', 'react', 'stage-0'],
extensions: ['.jsx']
});
您需要安装@babel/plugin-proposal-class-properties
:
npm install @babel/plugin-proposal-class-properties --save-dev
或
yarn add @babel/plugin-proposal-class-properties --dev
并将以下内容添加到您的 Babel 配置文件中 - 通常是 .babelrc
或 babel.config.js
.
"plugins": ["@babel/plugin-proposal-class-properties"],
终于发现,要消除Laravel-Mix项目中的这个错误,在webpack.mix.js
mix.webpackConfig({
module: {
rules: [
{
test: /\.js?$/,
exclude: /(node_modules|bower_components)/,
loaders: [
'babel-loader?presets[]=react,presets[]=es2015,presets[]=stage-0'
]
}
],
}
});
我遇到了同样的错误,我在我的 .babelrc 中正确地订购了我的插件,但它仍然存在。删除我在我的 webpack 加载器中定义的预设参数修复了它。
以前的 webpack 配置:
module: {
rules: [
{
test: /.jsx?$/,
loader: 'babel-loader',
include: path.join(__dirname, 'src'),
exclude: /node_modules/,
query: {
presets: ['es2015', 'react']
}
}
]
}
工作 webpack 配置:
module: {
rules: [
{
test: /.jsx?$/,
loader: 'babel-loader',
include: path.join(__dirname, 'src'),
exclude: /node_modules/
}
]
}
我的修复方法是在 webpack.config.js 的选项属性中定义 'transform-class-properties' 插件,我正在使用 babel V6
rules:[
.....,
{
test: /\.(js|jsx)$/,
exclude: /(node_modules|bower_components)/,
loader: 'babel-loader',
options: { plugins: ['transform-class-properties']}
}
]
以防万一有人仍然面临同样的问题, 以下博客 post 确实帮助了我: https://devblogs.microsoft.com/typescript/typescript-and-babel-7/
就我而言(babel 7.9.6、typescript 3.9.2、webpack 4.43.0)我必须执行以下操作:
运行 以下命令:
npm install --save-dev @babel/preset-typescript @babel/preset-env @babel/plugin-proposal-class-properties @babel/plugin-proposal-object-rest-spread
创建.babelrc文件(是的,我以前没有,但它确实工作得很好) 内容如下:
{ "presets": [ "@babel/env", "@babel/preset-typescript" ], "plugins": [ "@babel/proposal-class-properties", "@babel/proposal-object-rest-spread" ] }
我 运行 陷入这个问题是因为我不假思索地将一些箭头函数放入我的 类 之一。一旦我将箭头函数更改为常规 function/method 定义,错误就解决了。
如果您使用的是 Babel 7.4 或更新版本,@babel/pollify
已弃用。
安装 core-js
、regenerator-runtime
、@babel/plugin-proposal-class-properties
和 babel-plugin-transform-class-properties
软件包。
yarn add core-js regenerator-runtime @babel/plugin-proposal-class-properties babel-plugin-transform-class-properties --dev
// or
npm install core-js regenerator-runtime @babel/plugin-proposal-class-properties babel-plugin-transform-class-properties --save-dev
然后,添加到.babelrc
或babel.config.js
"plugins": ["@babel/plugin-proposal-class-properties"],
最后,在您的主 js 文件中添加以下行:
import "core-js/stable";
import "regenerator-runtime/runtime";
取自: