[react]バーベルとWebパッケージで設定
ネットゲーム制作を学ぶReact 2
授業内容の位置づけを整理する.
📌 ネットワークパッケージ
なぜWebパッケージを使うのですか? 2万個のコンポーネントjavascriptファイルを統合し、バーベルに適用( )スクリプトの重複を解消できます.
Webパッケージを使用するには、Nodeを使用する必要があります.
端末は
Webパッケージのインストール
リアクターを取り付ける
Webパッケージのインストール
Webパッケージの設定
拡張子は記入しなくてもいいです.
entryにモジュールを適用し、出力として減算します.
rulesはルールをリストするので、配列別に作成されます.
📌 Webパッケージとして構築 jsxはjavascript構文ではありません. したがって、は、Webパケットを介して構築するためにjsxを処理しなければならない.jsxを処理するためには バーベルをセットする
ブラウザ・リスト・オプションを使用すると、ブラウザ間のインターネットの問題を解決できます.
実際の作業では、Webパッケージに遭遇した場合、プラグインとrulesを除いて、デバッグによって追跡されます.
react jsxのformラベルには
📌 Web Pack Deviceサーバとホットロード開発サーバ
包json
ホットロードWebパッケージ設定
授業内容の位置づけを整理する.
📌 ネットワークパッケージ
なぜWebパッケージを使うのですか?
Webパッケージを使用するには、Nodeを使用する必要があります.
端末は
하이픈(-D)
開発でのみ使用される.リアクターを取り付ける
npm i react react-dom
Webパッケージのインストール
npm i -D webpack webpack-cli
端末は하이픈(-D)
開発でのみ使用される.実際のサービスではWebパッケージは使用されません.// webpack.config.js
const path = require('path');
module.exports = {
name: 'wordrelay-setting',
mode: 'development', // 실서비스: production
devtool: 'eval', // 개발인 경우 eval, 프로던션인 경우 hidden-source-map
resolve: {
extensions, ['.js', '.jsx'], // js, jsx 파일이 있는지 알아서 찾아주는 옵션
},
entry: {
app: ['./cleint'],
}, // 입력
module: {
rules: [{
test: /\.jsx?/,
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env', '@babel/preset-react'],
plugins: ['@babel/plugin-proposal-class-properties'],
} // 바벨의 옵션 적용
}],
},
ouput: {
path: path.join(__dirname, 'dist'), // path.join()을 하면 앞의 절대경로를 맞춰준다. 현재 폴더에
filename: 'app.js' // 우리가 원하는 아웃풋 할 파일
}, // 출력
};
Webパッケージには、他のファイルが読み込まれたファイルを別途書く必要はありません.WebPackは自分で追跡して一緒にロードします.拡張子は記入しなくてもいいです.
entryにモジュールを適用し、出力として減算します.
rulesはルールをリストするので、配列別に作成されます.
📌 Webパッケージとして構築
// package.json
script:{
dev: webpack
} // 스크립트를 사용해서 npm run dev식으로 실행 할 수 있다. 또는 npx webpack 식으로도 가능하다.
babel
を設定しなければならない.npm i @babel/core
バーベルのしんnpm i @babel/preset-env
最新の構文をブラウザと組み合わせて使用します.npm i @babel/preset-react
JSXをサポートします.npm i babel-loader
バーベルとネットバッグをつなぐ.npm i -D @babel/plugin-proposal-class-properties
@Babel/prefert-envとpluginspreset
はプラグインの集合です.module: {
rules: [{
test: /\.jsx?/,
loader: 'babel-loader',
options: {
presets: [
['@babel/preset-env', {
targets: {
browsers: ['last 2 chrome versions'], // 크롬 버전 호환
},
}],
'@babel/preset-react'
],
plugins: ['@babel/plugin-proposal-class-properties'],
} // 바벨의 옵션 적용
}],
},
https://github.com/browserslist/browserslist ブラウザ・リスト・オプションを使用すると、ブラウザ間のインターネットの問題を解決できます.
実際の作業では、Webパッケージに遭遇した場合、プラグインとrulesを除いて、デバッグによって追跡されます.
react jsxのformラベルには
value
とonChange
があります.📌 Web Pack Deviceサーバとホットロード
npm i react-refresh @pmmmwh/react-refresh-webpack-plugin -D
npm i -D webpack-dev-server
包json
{
"name": "word-relay",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"dev": "webpack serve --env development"
},
"author": "jangwonyoon",
"license": "ISC",
"dependencies": {
"react": "^17.0.1",
"react-dom": "^17.0.1"
},
"devDependencies": {
"@babel/core": "^7.12.3",
"@babel/preset-env": "^7.12.1",
"@babel/preset-react": "^7.12.1",
"@pmmmwh/react-refresh-webpack-plugin": "^0.4.3",
"babel-loader": "^8.1.0",
"react-refresh": "^0.10.0",
"webpack": "^5.3.2",
"webpack-cli": "^4.1.0",
"webpack-dev-server": "^3.11.0"
}
}
"dev": "webpack serve --env development"ホットロードWebパッケージ設定
// webpack.config.js
const path = require('path');
const ReactRefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin');
module.exports = {
name: 'word-relay-dev',
mode: 'development',
devtool: 'inline-source-map',
resolve: {
extensions: ['.js', '.jsx'],
},
entry: {
app: './client',
},
module: {
rules: [{
test: /\.jsx?$/,
loader: 'babel-loader',
options: {
presets: [
['@babel/preset-env', {
targets: {browsers: ['last 2 chrome versions']},
debug: true,
}],
'@babel/preset-react',
],
plugins: ['react-refresh/babel'],
},
exclude: path.join(__dirname, 'node_modules'),
}],
},
plugins: [
new ReactRefreshWebpackPlugin(),
],
output: {
path: path.join(__dirname, 'dist'),
filename: 'app.js',
publicPath: '/dist',
},
devServer: {
publicPath: '/dist',
hot: true
}
};
리로딩과 핫리로딩의
の違い:名前の通りに再ロードすることはリフレッシュです.更新すると、既存のデータが削除されます.ホット・リロードは、既存のデータを保持しながら画面を変更できます.Reference
この問題について([react]バーベルとWebパッケージで設定), 我々は、より多くの情報をここで見つけました https://velog.io/@jangwonyoon/React에서의-바벨과-웹팩テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol