從webpack開始建立一個新的react專案
-
使用
npm init -y
初始化一個package.json
-
建立
src
資料夾(專案檔案)和text資料夾(測試程式碼等) -
src
中建立index.html
以及index.js
-
安裝
webpack
cnpm i webpack webpack-cli -D
-
建立
webpack.config.js
寫入
module.exports = { mode: "development", //可選的值為:`development` 和 `production` // webpack4.x中約定了打包的入口時候src -> index.js 出口是 dist -> main.js };
-
安裝
webpack-dev-server
->實時編譯cnpm i webpack-dev-server -D
在package.json中新增
"scripts": { ... "dev": "webpack-dev-server --open --host 127.0.0.1 --port 4500 --hot --compress" },
就可以使用
npm run dev
跑起專案 -
給專案生成的記憶體中新增一個首頁,不然一進去看到的是專案的目錄結構,安裝
html-webpack-plugin
cnpm i html-webpack-plugin -D
在
webpack.config.js
中寫入const path = require("path"); const HtmlPlugin = require("html-webpack-plugin"); const htmlplugin = new HtmlPlugin({ template: path.join(__dirname, "./src/index.html"), //指定模板檔案 filename: "index.html", // 指定記憶體中生成的首頁名稱 }); module.exports = { mode: "development", // webpack4.x中約定了打包的入口時候src -> index.js 出口是 dist -> main.js plugins: [htmlplugin], };
-
安裝靜態檔案處理的loader
npm i url-loader file-loader -D
在
webpack.config.js
中寫入module.exports = { ... module: { rules: [ .... { test: /\.jpg|png|gif|bmp$/, use: "url-loader" }, //處理圖片 { test: /\.ttf|svg|woff|woff2$/, use: "url-loader" }, //處理字型檔案 ], }, };
-
安裝樣式的處理loader
cnpm i style-loader css-loader -D cnpm i sass-loader node-sass -D
在
webpack.config.js
中寫入module.exports = { ... module: { rules: [ .... { test: /\.css$/, use: ["style-loader", "css-loader"] }, //處理普通樣式表 { test: /\.scss$/, use: ["style-loader", "css-loader?modules&localIdentName=[path][name]-[local]-[hashL:5]","sass-loader"] }, //處理普通樣式表 ], }, };
-
安裝babel外掛
cnpm i babel-core babel-loader babel-plugin-transform-runtime -D cnpm i babel-preset-env babel-preset-stage-0 -D
-
安裝能夠識別轉換jsx語法的包
cnpm i babel-preset-react -D
建立
.babelrc
檔案,並新增{ "presets": [ "env", "stage-0", "react" ], "plugins": [ "transform-runtime" ] }
新增babel-loader配置項,在
webpack.config.js
中寫入module: { //要打包的第三方模組 rules: [ { test: /\.js|jsx$/, use: 'babel-loader', exclude: /node_modules/ } ] }
-
配置一些可以省略的字尾以及別名
resolve: { extensions: [".js", ".jsx", ".json"], alias: { //別名-可以在檔案中用@符號代表這個路徑 "@": path.join(__dirname, "./src"), }, },
-
安裝react
cnpm i react react-dom -S
-
在
index.js
中寫入import React from "react"; import ReactDOM from "react-dom"; // 匯入根元件 import App from "@/components/App"; // 呼叫方法渲染根元件 ReactDOM.render( <div> <App></App> </div>, document.getElementById("app") );
建立
App.jsx
import React, { Component } from "react"; export default class App extends Component { render() { return <div>App</div>; } }
-
在
index.html
中寫入<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>首頁</title> </head> <body> <div id="app"></div> </body> </html>
後面就是專案的詳細編寫了
相關文章
- 從零開始使用webpack 4, Babel 7建立一個React專案WebBabelReact
- 從零開始構建一個webpack專案Web
- 從零開始使用 webpack5 搭建 react 專案WebReact
- 從零開始React專案架構(一)React架構
- 從零開始構建一個vue專案 --- webpack歷險記VueWeb
- 從零開始生成一個ios react-native專案iOSReact
- 從零開始開發一個 WebpackWeb
- 從零開始的 Android新專案(10 ): React Native & ReduxAndroidReact NativeRedux
- 從零開始搭建一個vue專案Vue
- 如何使用 Webpack 5 + Babel 從頭開始建立 React 應用程式 - DevDojoWebBabelReactdev
- 從零開始React專案架構(六)React架構
- 從零開始React專案架構(三)React架構
- 從零開始React專案架構(四)React架構
- 從零開始React專案架構(五)React架構
- 從零開始React專案架構(二)React架構
- webpack4.X 實戰(二):從0開始搭建一個 簡單的前端專案Web前端
- 使用webpack 手動建立新react專案WebReact
- 開始一個專案
- Jersey2.x從MavenArchetype建立一個新專案Maven
- 用好 Webpack2 從一個完整的配置開始Web
- 做一個react+redux+webpack專案後的感想ReactReduxWeb
- 從零開始:Django專案的建立與配置指南Django
- 從零開始搭建webpack+react開發環境WebReact開發環境
- Layui+MVC+EF (專案從新建立開始)UIMVC
- 從零開始:一個正式的vue+webpack專案的目錄結構是怎麼形成的VueWeb
- 從零開始的爬蟲專案(一)爬蟲
- 原生專案如何從零開始整合 React NativeReact Native
- 從零開始構建自己的第一個vue專案Vue
- React+webpack從0到1開發一個todoMvc(一)ReactWebMVC
- 從0開始學習Webpack(一)Web
- 從零開始:用REACT寫一個格鬥遊戲(一)React遊戲
- webpack入門級 - 從0開始搭建單頁專案配置Web
- 從零開始的 Android 新專案 - 收藏集 - 掘金Android
- 從零開始搭建一個 React + Mobx + React Router 腳手架React
- vue全家桶 ---建立一個新的vue專案Vue
- React+webpack從0到1開發一個todoMvc(二)ReactWebMVC
- React+webpack從0到1開發一個todoMvc(四)ReactWebMVC
- React+webpack從0到1開發一個todoMvc(三)ReactWebMVC