Hi guys!
So I am getting this error, been busting my head over it all day, any thought?
Help, much appreciated 馃槃.
src/index.js
import {h, render, Component} from 'ink'
export default class extends Component {
render() {
return (
<div>a</div>
)
}
}
demo.js
import {h, render} from 'ink'
import Route from './src/index'
// Router
const Demo = () => {
return (
<Route/>
)
}
// Ink
render(<Demo/>)
.babelrc
{
"presets": ["es2015", "stage-2"],
"plugins": [
["transform-class-properties"],
["transform-react-jsx", {
"pragma": "h",
"useBuiltIns": true
}],
["transform-object-rest-spread",
{
"useBuiltIns": true
}]
]
}
package.json
{
"name": "ink-router",
"version": "1.0.0",
"description": "A router component for Ink.",
"license": "MIT",
"main": "dist/index.js",
"scripts": {
"pretest": "npm run build",
"test": "xo",
"start": "babel-node dist/index.js",
"demo": "babel-node demo.js",
"build": "babel src --out-dir=dist",
"prepublish": "npm run build"
},
"engines": {
"node": ">=6"
},
"files": [
"dist"
],
"keywords": [
"ink",
"ink-component"
],
"dependencies": {
"ink": "^0.3.0",
"prop-types": "^15.5.10"
},
"devDependencies": {
"babel-cli": "^6.24.1",
"babel-eslint": "^7.2.3",
"babel-plugin-transform-class-properties": "^6.24.1",
"babel-plugin-transform-object-rest-spread": "^6.23.0",
"babel-plugin-transform-react-jsx": "^6.24.1",
"babel-preset-es2015": "^6.24.1",
"babel-preset-node6": "^11.0.0",
"babel-preset-stage-2": "^6.24.1",
"eslint-config-xo-react": "^0.13.0",
"eslint-plugin-react": "^7.2.0",
"eslint-plugin-xo": "^1.0.0",
"xo": "^0.18.2"
},
"xo": {
"extends": "xo-react",
"parser": "babel-eslint",
"esnext": true,
"space": true,
"semicolon": false,
"rules": {
"new-cap": 0,
"complexity": 0,
"default-case": 0,
"react/no-unused-prop-types": 1
},
"settings": {
"react": {
"pragma": "h"
}
}
}
}
This is happening, because Babel's preset-es2015 transpiles ES6 classes. This is a very popular issue, I'd say - https://github.com/babel/babel/issues/4269.
Solution would be to use presets that target more modern Node.js versions, for example - https://www.npmjs.com/package/babel-preset-es2015-node5.
It works now! Thank you so much!!
You're welcome :)
if anyone stumbles upon this using the env preset like I was, you can set a more specific target to prevent babel from transpiling ES6 classes
.babelrc:
{
"presets": [["env", { "targets": { "node": "current" } }]],
"plugins": [
[
"transform-react-jsx",
{
"pragma": "h"
}
]
]
}
@KumaresanDevi how is it related?
Most helpful comment
if anyone stumbles upon this using the env preset like I was, you can set a more specific target to prevent babel from transpiling ES6 classes
.babelrc: