成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

webpack4詳細(xì)教程,從無到有搭建react腳手架(二)

cuieney / 1526人閱讀

摘要:相關(guān)鏈接詳細(xì)教程,從無到有搭建腳手架一配置插件,這兩個(gè)插件基本上是必配的了介紹每次打包時(shí)清理上次打包生成的目錄官網(wǎng)指南關(guān)于這個(gè)插件部分內(nèi)容已經(jīng)過時(shí)沒有更新,按照官網(wǎng)配置會(huì)出錯(cuò),所以參考上這個(gè)插件文檔來配置,文檔地址生成打

相關(guān)鏈接

webpack4詳細(xì)教程,從無到有搭建react腳手架(一)

配置插件 clean-webpack-plugin、 html-webpack-plugin, 這兩個(gè)插件基本上是必配的了 介紹

clean-webpack-plugin - 每次打包時(shí)清理上次打包生成的目錄

官網(wǎng)指南關(guān)于這個(gè)插件部分內(nèi)容已經(jīng)過時(shí)沒有更新,按照官網(wǎng)配置會(huì)出錯(cuò),所以參考github上這個(gè)插件文檔來配置, 文檔地址: https://github.com/johnagan/c...

html-webpack-plugin - 生成打包文件中的 index.html

安裝
yarn add clean-webpack-plugin html-webpack-plugin -D
這兩個(gè)插件在兩種模式下都要用到,所以配置在common.js
config/webpack.common.js
        ...
        + const HtmlWebpackPlugin = require("html-webpack-plugin");
        + const { CleanWebpackPlugin } = require("clean-webpack-plugin");

        function webpackCommonConfigCreator(options){
            ...
            return {
                ...
                plugins: [
                    + new HtmlWebpackPlugin(),
                    + new CleanWebpackPlugin({
                    +     cleanOnceBeforeBuildPatterns: [path.resolve(process.cwd(), "build/"), path.resolve(process.cwd(), "dist/")]
                    + }),
                ]
            }
        }
        ...
更改開發(fā)代碼,在頁面上插入一個(gè)元素
src/index.js
        var ele = document.createElement("div");
        ele.innerHTML = "hello webpack";

        document.body.appendChild(ele);
效果

yarn start, 效果:

yarn build, build目錄下生成index.html并且引入了bundle.js

接下來配置react

React 安裝react
    yarn add react react-dom
安裝babel
    yarn add @babel/core @babel/cli @babel/preset-env -D
    yarn add @babel/preset-react -D
    yarn add babel-loader -D
配置babel-loader
config/webpack.common.js
        ...
        function webpackCommonConfigCreator(options){
            ...
            return {
                ...
                + module: {
                +     rules: [
                +         {
                +             test: /.(js|jsx)$/,
                +             include: path.resolve(__dirname, "../src"),
                +             use: [
                +                 {
                +                     loader: "babel-loader",
                +                     options: {
                +                         presets: ["@babel/preset-react"],
                +                     }
                +                 }
                +             ]
                +         }
                +     ]
                + },
                ...
            }
        }
準(zhǔn)備基本的react文件
src/index.js
        import React from "react";
        import ReactDom from "react-dom";
        import App from "./App.js";

        ReactDom.render(, document.getElementById("root"));
src/App.js
        import React from "react";

        function App(){
            return (
                
hello react
) } export default App;
App節(jié)點(diǎn)掛在在id為root的div上,而html-webpack-plugin插件默認(rèn)生成的html沒有這個(gè)div, 所以需要配置插件使用我們定義的模板

創(chuàng)建public/index.html

public/index.html
        
        
        
            
            
            
            react webpack
        
        
            
config/webpack.common.js
        ...
        function webpackCommonConfigCreator(options){
            ...
            return {
                ...
                plugins: [
                    - new HtmlWebpackPlugin(),
                    + new HtmlWebpackPlugin({
                    +     template: path.resolve(__dirname, "../public/index.html")
                    + }),
                    ...
                ]
            }
        }
yarn start, 編譯正常

React模塊熱替換

開發(fā)模式下,改動(dòng)代碼,瀏覽器將刷新頁面來更新改動(dòng),配置模塊熱替換,瀏覽器不刷新,而是通過dom操作來更新改動(dòng),對(duì)頻繁更新代碼的開發(fā)模式更加友好

安裝loader
    yarn add react-hot-loader -D
配置loader
config/webpack.common.js
        ...
        function webpackCommonConfigCreator(options){
            ...
            return {
                ...
                module: {
                    rules: [
                        {
                            test: /.(js|jsx)$/,
                            include: path.resolve(__dirname, "../src"),
                            use: [
                                {
                                    loader: "babel-loader",
                                    options: {
                                        presets: ["@babel/preset-react"],
                                        + plugins: ["react-hot-loader/babel"],
                                    }
                                }
                            ]
                        }
                    ]
                },
                ...
            }
        }
修改react代碼
src/App.js
        + import {hot} from "react-hot-loader/root";
        ...
        export default hot(App);
開啟webpackDevServer熱加載
config/webpack.dev.js
        ...
        const config = {
            devServer: {
                contentBase: path.join(__dirname, "../dist"),
                + hot: true
            }
        }
        ...

相關(guān)鏈接

webpack4詳細(xì)教程,從無到有搭建react腳手架(三)

webpack4詳細(xì)教程,從無到有搭建react腳手架(四)

源碼github倉庫: https://github.com/tanf1995/W...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/105478.html

相關(guān)文章

  • webpack4詳細(xì)教程,從無到有搭建react手架(一)

    摘要:是一個(gè)現(xiàn)代應(yīng)用程序的靜態(tài)模塊打包器,前端模塊化的基礎(chǔ)。作為一個(gè)前端工程師切圖仔,非常有必要學(xué)習(xí)。官網(wǎng)的文檔非常的棒,中文文檔也非常給力,可以媲美的文檔。建議先看概念篇章,再看指南,然后看和配置總覽。 webpack 是一個(gè)現(xiàn)代 JavaScript 應(yīng)用程序的靜態(tài)模塊打包器,前端模塊化的基礎(chǔ)。作為一個(gè)前端工程師(切圖仔),非常有必要學(xué)習(xí)。 showImg(https://segment...

    zhkai 評(píng)論0 收藏0
  • webpack4詳細(xì)教程,從無到有搭建react手架(四)

    摘要:相關(guān)鏈接詳細(xì)教程,從無到有搭建腳手架一詳細(xì)教程,從無到有搭建腳手架二詳細(xì)教程,從無到有搭建腳手架三管理打包后目錄結(jié)構(gòu)打包結(jié)構(gòu)如下修改配置通過相對(duì)目錄對(duì)資源命名前加上目錄名,效果后面的步驟在這里需要安裝一個(gè)大型的包,以為例安裝為第三 相關(guān)鏈接 webpack4詳細(xì)教程,從無到有搭建react腳手架(一) webpack4詳細(xì)教程,從無到有搭建react腳手架(二) webpack4詳細(xì)...

    chnmagnus 評(píng)論0 收藏0
  • webpack4詳細(xì)教程,從無到有搭建react手架(三)

    摘要:相關(guān)鏈接詳細(xì)教程,從無到有搭建腳手架一詳細(xì)教程,從無到有搭建腳手架二安裝配置創(chuàng)建,效果安裝配置創(chuàng)建效果配置模式修改配置現(xiàn)在編譯后的由動(dòng)態(tài)內(nèi)聯(lián)在中,需要分離到單獨(dú)的文件安裝插 相關(guān)鏈接 webpack4詳細(xì)教程,從無到有搭建react腳手架(一) webpack4詳細(xì)教程,從無到有搭建react腳手架(二) Css 安裝loader yarn add style-loader css...

    Sunxb 評(píng)論0 收藏0
  • 學(xué)習(xí)從零開始搭建React手架

    摘要:寫在前面準(zhǔn)備學(xué)習(xí)一下和相關(guān)的東西,官方的腳手架看起來太繁瑣,所以打算自己來搭建一個(gè),參考了這個(gè)文檔從零搭建全家桶框架教程步驟上都差不多第一步,依賴總覽完成到我現(xiàn)在半成品的過程中,目前完成開發(fā)模式的相關(guān)操作,添加了按需加載的地步。 寫在前面 準(zhǔn)備學(xué)習(xí)一下react和webpack相關(guān)的東西,官方的腳手架看起來太繁瑣,所以打算自己來搭建一個(gè),參考了這個(gè)文檔從零搭建React全家桶框架教程;...

    cod7ce 評(píng)論0 收藏0
  • webpack4配置詳解之逐行分析

    摘要:今天就嘗試著一起來聊聊吧,旨在幫大家加深理解新手更容易上路,都能從到搭建配置自定屬于自己的腳手架,或?qū)σ逊庋b好的腳手架有進(jìn)一步的鞏固,接下來蘇南會(huì)詳細(xì)講解中的每一個(gè)配置字段的作用部分為新增。 showImg(https://segmentfault.com/img/bVbjmMV?w=1008&h=298); 前言   經(jīng)常會(huì)有群友問起webpack、react、redux、甚至cre...

    dkzwm 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<