国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

zhkai / 1105人閱讀

摘要:是一個(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í)。

webpack官網(wǎng)的文檔非常的棒,中文文檔也非常給力,可以媲美vue的文檔。建議先看概念篇章,再看指南,然后看API和配置總覽。看完指南教程后,需要自主動(dòng)手練習(xí)才能更加有影響,這里記錄下我搭建react開發(fā)環(huán)境的過程

準(zhǔn)備工作 安裝webpack
yarn add webpack webpack-cli -D
創(chuàng)建配置目錄結(jié)構(gòu)
config
    webpack.common.js
    webpack.dev.js
    webpack.prod.js

scripts
    build.js  // 構(gòu)建模式腳本
    start.js  // 開發(fā)模式腳本

src
    index.js

package.json
先嘗試一個(gè)簡單配置 配置啟動(dòng)腳本命令
package.json
...
"license": "MIT",
+ "scripts": {
+     "start": "node ./scripts/start.js",
+     "build": "node ./scripts/build.js"
+ },
"devDependencies": {
    "webpack": "^4.35.2",
    "webpack-cli": "^3.3.5"
}
...
編寫webpack配置, 以 src/index.js 作為主入口,以 build為打包后的目錄
config/webpack.common.js

output path字段這里配置的絕對路徑

        const path = require("path");

        module.exports = {
            entry: "./src/index.js",
            output: {
                path: path.resolve(__dirname, "../build"),
                filename: "bundle.js"
            }
        }
編寫開發(fā)模式運(yùn)行腳本
scripts/build.js
        const webpack = require("webpack");
        const webpackConfig = require("../config/webpack.common.js");

        webpack(webpackConfig, (err, stats) => {
            if(err || stats.hasErrors()){
                console.log("編譯失敗");
            }
        });

webpack node接口文檔: https://www.webpackjs.com/api...

在入口編寫一點(diǎn)內(nèi)容
src/index.js
    
    console.log("hello")
    
執(zhí)行 yarn build 命令,生成打包目錄

運(yùn)行生成的 `bundle.js`

配置開發(fā)服務(wù)器 - webpack-dev-server 安裝dev服務(wù)器和合并配置工具
    yarn add webpack-dev-server webpack-merge -D
    
改寫webpack配置文件, common文件導(dǎo)出一個(gè)可傳參數(shù)的基本配置生成器, prod和dev文件使用webpack-merge將通用配置和各自模式下的配置進(jìn)行合并導(dǎo)出
config/webpack.common.js
        
        const path = require("path");

        function webpackCommonConfigCreator(options){
            /**
            * options: 
            *      mode // 開發(fā)模式
            */

            return {
                mode: options.mode,
                entry: "./src/index.js",
                output: {
                    filename: "bundle.js",
                    path: path.resolve(__dirname, "../build"),
                }
            }
        }

        module.exports = webpackCommonConfigCreator;
config/webpack.prod.js
        const webpackConfigCreator = require("./webpack.common");
        const merge = require("webpack-merge");

        const config = {

        }

        const options = {
            mode: "production"
        }

        module.exports = merge(webpackConfigCreator(options), config);
config/webpack.dev.js
        const webpackConfigCreator = require("./webpack.common");
        const merge = require("webpack-merge");

        const config = {

        }

        const options = {
            mode: "development"
        }

        module.exports = merge(webpackConfigCreator(options), config);
script/build.js
        const webpack = require("webpack");
        const webpackConfig = require("../config/webpack.prod.js");

        webpack(webpackConfig, (err, stats) => {
            if(err || stats.hasErrors()){
                console.log("編譯失敗");
            }
        });

yarn build 打包,輸出正常

配置 webpack-dev-server
config/webpack.dev.js

這里的contentBase選項(xiàng)是server模式下的output,開啟server后,webpack會實(shí)時(shí)編譯代碼到內(nèi)存

        ...
        + const path = require("path");

        const config = {
            + devServer: {
            +     contentBase: path.join(__dirname, "../dist")
            + }
        }
        ...
scripts/start.js
        const webpack = require("webpack");
        const webpackDevServer = require("webpack-dev-server");
        const webpackConfig = require("../config/webpack.dev.js");

        const compiler = webpack(webpackConfig);
        const options = Object.assign({}, webpackConfig.devServer, {
            open: true
        })
        const server = new webpackDevServer(compiler, options);

        server.listen(3000, "127.0.0.1", () => {
            console.log("Starting server on http://localhost:8080");
        })
運(yùn)行命令 yarn start, 瀏覽器自動(dòng)彈出窗口,訪問 localhost:3000/bundle.js

相關(guān)鏈接

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

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

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

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

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

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/105479.html

相關(guān)文章

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

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

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

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

    chnmagnus 評論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 評論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 評論0 收藏0
  • 如何搭建個(gè)基于reactwebpack4、babel7的項(xiàng)目(

    摘要:對的工作流程有點(diǎn)模糊,以及據(jù)官方文檔稱的升級,性能得到了極大的提升,而還是用的,于是決定從頭開始搭建一個(gè)適合團(tuán)隊(duì)的腳手架。保證各文件獲得一致的文件編碼和縮進(jìn)效果。這些在后面文章中,都會一個(gè)個(gè)涉及到,此處不做詳細(xì)展開。 前言 寫前端項(xiàng)目這么久了,以前用的 dva 框架,后來用過 create-react-app 框架,都需要針對團(tuán)隊(duì)做一些定制化的修改。對 webpack 的工作流程有點(diǎn)模...

    IamDLY 評論0 收藏0

發(fā)表評論

0條評論

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