Задать вопрос
@mletov

Как подружить babel + webpack + react + npm?

Пожалуйста, подскажите:

Пытаюсь освоить всю эту ноджеэсовскую кухню, компиляцию js кода в исполняемые модули через Webpack. Боле-менее получается, но споткнулся на babel. Создал вот такой тестовый файл dgtest.js на примере с метанита, пытаюсь прогнать его через webpack с применением babel.

class Hello extends React.Component {
    render() {
        return <h1>Hello, React</h1>;
    }
}
ReactDOM.render(
    <Hello></Hello>,
    document.getElementById("app")
)


Получаю ошибку
"locals[0] does not appear to be a `module` object with Hot Module replacement API enabled. You should disable react-transform-hmr in production by using `env` section in Babel configuration. See the example in "

Гуглил. Пытался вставить предложенные конфигурации с SO в секцию "babel" в package.json - не работает.
Подскажите, пожалуйста, как с этим бороться. Ну и заодно хотел уточнить, нужно ли перед этим кодом вставлять require("react") и/или require("babel")?

Использую Visual Studio.

webpack.config.js
var path = require('path');

module.exports = {
	
		entry: {
			react: './node_modules/react/index',
			reactdom: './node_modules/react-dom/index',
			datagrid: './node_modules/react-data-grid/index',
			addons: './node_modules/react-data-grid-addons/index',
			jquery: './node_modules/jquery/src/jquery',
			dgtest: './wp/Scripts/dgtest.js'
		},
		output: {
			publicPath: "/js/",
			path: path.join(__dirname, '/wp/wwwroot/js/'),
			filename: "[name].bundle.js",
			chunkFilename: "[id].bundle.js"
		},
		module: 
		{
			 loaders:  [
							  {
									test: /\.js$/,
									loader: 'babel-loader',
									exclude: /node_modules/,									
									query: {
									  presets: ['react', 'es2015', 'react-hmre'],									  
									  plugins: ['transform-class-properties'],								
									}
							  }
						]
       }

	
};


package.json
{
  "name": "wp",
  "version": "1.0.0",
  "description": "",
  "main": "webpack.config.js",
  "dependencies": {
    "babel-core": "^6.26.0",
    "babel-loader": "^7.1.2",
    "babel-preset-react-hmre": "^1.1.1",
    "jquery": "^3.2.1",
    "react": "^16.0.0",
    "react-data-grid": "^2.0.69",
    "react-data-grid-addons": "^2.0.70",
    "react-dom": "^16.0.0",
    "webpack": "^3.8.1",
    "webpack-notifier": "^1.5.0"
  },
  "devDependencies": {
    "babel-core": "^6.26.0",
    "babel-loader": "^7.1.2",
    "babel-plugin-react-transform": "^3.0.0",
    "babel-plugin-transform-class-properties": "^6.24.1",
    "babel-preset-es2015": "^6.24.1",
    "babel-preset-react": "^6.24.1",
    "babel-register": "^6.26.0",
    "react-transform-hmr": "^1.0.4",
    "webpack": "^3.8.1"
  },
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "webpack"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "babel": {}
}
  • Вопрос задан
  • 1033 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Frontend-разработка на React
    10 недель
    Далее
  • ProductStar
    Разработка на React
    6 недель
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 2
@197291
1) Для освоения всего стэка, лучше использовать create-react-app, погугли посмотри. Для начала очень хорошо.
2) Если же ты хочешь с места в карьер, то рекомендую посмотреть boilerplate какой нибудь. А там разбирай его и смотри. Конфиги, структуру. Boilerplate react в гугл и качай.
Ответ написан
AlanIkaev
@AlanIkaev
Developer
Думаю будет полезная эта статья. Просто сделаешь все как тебе нужно
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
от 250 000 до 300 000 ₽
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
ITK academy Екатеринбург
от 50 000 до 90 000 ₽