Скомпилированные реагируют с browserify и babel говорит: ReferenceError: React не определен - PullRequest
0 голосов
/ 06 декабря 2018

Проблема : ошибки сборки нет, но при попытке использовать файл в браузере консоль говорит: ReferenceError: React is not defined.

Компиляция файла реакции с помощью этих двух команд:

npx browserify \
-t [ babelify --presets [ @babel/preset-react @babel/preset-env ] ] \
./input.jsx -o ./temp1.js

Тогда:

npx babel ./temp1.js \
--presets=@babel/preset-react,@babel/preset-env,minify \
--no-comments --out-file ./output.js

Мой input.jsx файл выглядит так:

import react from 'react';
import Testing from './component/testing.jsx'
import reactDOM from 'react-dom';

reactDOM.render
(
    <Testing></Testing>,
    document.getElementById('root')
);

А ./component/testing.jsx выглядит так:

import React from 'react';

class Testing extends React.Component
{
    render()
    {
        return (
            <h1>Hello World</h1>
        );
    }
}

export default Testing;

package.json / version:

{
"dependencies": {
    "react": "^16.6.3",
    "react-dom": "^16.6.3"
},
"devDependencies": {
    "@babel/cli": "^7.2.0",
    "@babel/core": "^7.2.0",
    "@babel/preset-env": "^7.2.0",
    "@babel/preset-react": "^7.0.0",
    "babel-preset-minify": "^0.5.0",
    "babel-preset-react": "^6.24.1",
    "babelify": "^10.0.0",
    "browserify": "^16.2.3"
}
}

Узел: v10.9.0
NPM: 6.2.0

1 Ответ

0 голосов
/ 06 декабря 2018

Я думаю, у вас есть проблема с именами.В этом операторе импорта (input.jsx):

import react from 'react';

изменить react на React

...