<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        webpack3+React 的配置全解

        來源:懂視網 責編:小采 時間:2020-11-27 22:32:07
        文檔

        webpack3+React 的配置全解

        webpack3+React 的配置全解:webpack3 的配置相對于webpack2 又有了一些新的變化,這里講其記錄下來,備查 。 package.json 的完整文件在結尾 。 1. 安裝 npm init yarn add webpack webpack-dev-server -D 2. 配置簡單輸入輸出 webpack.config.js
        推薦度:
        導讀webpack3+React 的配置全解:webpack3 的配置相對于webpack2 又有了一些新的變化,這里講其記錄下來,備查 。 package.json 的完整文件在結尾 。 1. 安裝 npm init yarn add webpack webpack-dev-server -D 2. 配置簡單輸入輸出 webpack.config.js

        webpack3 的配置相對于webpack2 又有了一些新的變化,這里講其記錄下來,備查 。

        package.json 的完整文件在結尾 。

        1. 安裝

        npm init
        yarn add webpack webpack-dev-server -D

        2. 配置簡單輸入輸出

        webpack.config.js

        module.exports = {
         entry: {
         ventor: ['react', 'react-dom'],
         index: [
         'babel-polyfill',
         'react-hot-loader/patch',
         path.resolve(__dirname, "src/index.js")
         ]
         },
         output: {
         path: path.resolve(__dirname, "dist"),
         filename: "js/[name].js",
         },
         devtool: 'source-map'

        將所用到的庫單獨分離出來,在多頁面應用中,對減少文件體積很有用 。

        react-hot-loader 的3.0 版本的get start 剛剛更新 。 單獨打包了補丁,所以react-hot-loader 作為一個生產依賴安裝 。

        這樣基本的輸入輸出就完成了 。

        3. webpack-dev-server

         devServer: {
         hot: true, // 熱重載
         inline: true, // 啟用inline 模式
         port: 46480,
         contentBase: path.resolve(__dirname, "dist"),
         proxy: {
         "/api": {
         target: "xxxxx",
         secure: false, // 處理https
         changeOrigin: true, // 跨域
         }
         }
         },

        4. loaders

        webpack 將所有的文件都當做js文件處理,所以配置加載器

        4.1 安裝loader

        yarn add babel-loader less-loader postcss-loader css-loader style-loader -D
        yarn add react-hot-loader

        4.2 配置loader

        注意,loader 中的 name 都是相對于 output中的path 的 。

        postcss-loader是對css 文件做一些預處理,常用就是添加css3屬性前綴,用到 autoprefixer 插件 。 配置postcss-loader ,需要 postcss.config.js 文件 。

        babel-loader 需要配置option選項,這里單獨提出去,放置到.babelrc 文件中 。

        webpack.config.js

         module: {
         rules: [{
         test: /.js$/,
         use: [
         "react-hot-loader/webpack",
         "babel-loader",
         ],
         exclude: path.resolve(__dirname, "node_modules")
         },
         {
         test: /\.css$/,
         use: [
         "style-loader",
         "css-loader",
         "postcss-loader"
         ]
         },
         {
         test: /\.less$/,
         use: [
         "style-loader",
         "css-loader",
         "postcss-loader",
         "less-loader"
         ]
         },
         {
         test: /\.(gif|png|jpe?g)$/,
         use: [{
         loader: "file-loader",
         options: {
         name: "static/img/[name].[ext]"
         }
         }]
         },
         {
         test: /\.(ttf|eot|svg|woff)(\?(\w|#)*)?$/,
         use: [{
         loader: "file-loader",
         options: {
         name: "static/font/[name].[ext]"
         }
         }]
         }
         ]
         },
        

        .babelrc

        {
         "presets": ["es2015", "stage-0", "react"],
         "plugins": ["transform-decorators-legacy"]
        }

        transform-decorators-legacy 這個插件用來轉化es7 中的裝飾器,比如 autobind,connect 等 。

        postcss.config.js

        module.exports = {
         plugins: [
         require('autoprefixer')
         ]
        }

        5. 插件

        插件是webpack 中非常重要的一部分 。

        5.1 HtmlWebpackPlugin 插件 。

        自動生成html文件,并自動引入script文件 。有幾個頁面就要new 幾個插件, 自動引入同名的js文件。

        const HtmlWebpackPlugin = require("html-webpack-plugin");
        new HtmlWebpackPlugin({
         template: path.resolve(__dirname, "src/index.html"),
         name: "index",
         title: "webpack config cli",
         filename: "index.html",
         inject: true,
        }),

        5.2 CommonsChunkPlugin 插件將單獨的部分作為chunk 提出去,減小文件體積,這里的name 要和 entry中對應 。

        new webpack.optimize.CommonsChunkPlugin({
         name: 'vendor',
         filename: 'js/vendor.js'
        }),

        5.3 webpack 模塊熱替換插件 HotModuleReplacementPlugin

        new webpack.HotModuleReplacementPlugin()

        5.4 ExtractTextPlugin 分離css 文件

        在這個插件加載以前,css 文件是放在js文件中,在解釋js時,將文本插入到style節點中 。

        使用這個插件以后,就直接可以單獨分離css 文件 。

        但是在開發環境中不要使用,會影響熱重載的速度。

        ExtractTextPlugin 的插件配置相對復雜 。首先包裹loaders,注意這里已經不能再使用style-loader了,因為提取css的任務插件完成了 。當提取失敗時,使用style-loader 。

        const ExtractTextPlugin = require("extract-text-webpack-plugin");
         // loader部分
         {
         test: /\.css$/,
         use: ExtractTextPlugin.extract({
         fallback: "style-loader",
         use: [
         "css-loader",
         "postcss-loader"
         ]
         })
         },
         {
         test: /\.less$/,
         use: ExtractTextPlugin.extract({
         fallback: "style-loader",
         use: [
         "css-loader",
         "postcss-loader",
         "less-loader"
         ]
         })
         }
         // 插件部分
         new ExtractTextPlugin({
         filename: "css/index.css"
         }),
        

        6. 其他

        extensions:用于省略后綴名

        alias 處理別名 。

         resolve: {
         extensions: [" ", ".js", ".jsx", ".css", ".less"],
         alias: {
         components: path.resolve(__dirname, 'src/components/'),
         css: path.resolve(__dirname, "src/css/"),
         model: path.resolve(__dirname, 'src/model/'),
         store: path.resolve(__dirname, 'src/store/')
         }
         }
        

        7.package.json

        {
         "name": "webpack-react-cli",
         "version": "1.0.0",
         "description": "",
         "main": "webpack.config.js",
         "scripts": {
         "test": "echo \"Error: no test specified\" && exit 1",
         "dev": "webpack-dev-server --open",
         "build": "webpack -w"
         },
         "author": "",
         "license": "ISC",
         "devDependencies": {
         "autoprefixer": "^7.1.2",
         "babel-core": "^6.25.0",
         "babel-loader": "^7.1.1",
         "babel-plugin-transform-decorators-legacy": "^1.3.4",
         "babel-preset-es2015": "^6.24.1",
         "babel-preset-react": "^6.24.1",
         "babel-preset-stage-0": "^6.24.1",
         "css-loader": "^0.28.4",
         "extract-text-webpack-plugin": "^3.0.0",
         "file-loader": "^0.11.2",
         "html-webpack-plugin": "^2.30.1",
         "less": "^2.7.2",
         "less-loader": "^4.0.5",
         "postcss-loader": "^2.0.6",
         "style-loader": "^0.18.2",
         "webpack": "^3.0.0",
         "webpack-dev-server": "^2.5.0"
         },
         "dependencies": {
         "babel-polyfill": "^6.23.0",
         "core-decorators": "^0.19.0",
         "prop-types": "^15.5.10",
         "react": "^15.6.1",
         "react-dom": "^15.6.1",
         "react-hot-loader": "^3.0.0-beta.7"
         }
        }
        

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        webpack3+React 的配置全解

        webpack3+React 的配置全解:webpack3 的配置相對于webpack2 又有了一些新的變化,這里講其記錄下來,備查 。 package.json 的完整文件在結尾 。 1. 安裝 npm init yarn add webpack webpack-dev-server -D 2. 配置簡單輸入輸出 webpack.config.js
        推薦度:
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 久久久久亚洲AV成人片| 国产一区二区视频免费| 亚洲午夜未满十八勿入| 无码专区AAAAAA免费视频| 久久亚洲国产视频| 亚洲一区二区免费视频| 精品丝袜国产自在线拍亚洲| 青苹果乐园免费高清在线| 亚洲 欧洲 自拍 另类 校园| 国产极品美女高潮抽搐免费网站| 国产精品亚洲va在线观看| 亚洲AV无码乱码精品国产| 中文字幕在线免费视频| 亚洲AV午夜福利精品一区二区| 99爱免费观看视频在线| 亚洲mv国产精品mv日本mv| 国产亚洲福利一区二区免费看| 免费国产污网站在线观看不要卡| 久久亚洲精品无码播放| 性无码免费一区二区三区在线| 亚洲一级免费毛片| 免费在线精品视频| 最好免费观看高清在线| 亚洲综合偷自成人网第页色| 色吊丝永久在线观看最新免费| 日本一区二区三区免费高清在线 | 国产18禁黄网站免费观看| 特级毛片A级毛片100免费播放| 亚洲老妈激情一区二区三区| 成人免费激情视频| 美女一级毛片免费观看| 亚洲欧洲在线观看| 日本免费高清一本视频| 暖暖免费日本在线中文| 亚洲狠狠色丁香婷婷综合| 国产亚洲精品a在线观看| 成人免费毛片内射美女-百度| 五月天国产成人AV免费观看| 久久亚洲精品国产精品| 男人的天堂亚洲一区二区三区 | 免费观看成人久久网免费观看|