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

資訊專欄INFORMATION COLUMN

進擊webpack4 (基礎篇三:配置 二)

sourcenode / 1085人閱讀

摘要:多頁面配置進擊基礎篇一進擊基礎篇二配置多頁面配置多頁面配置即是多入口需要寫成對象形式,注意數組形式會變成多入口單頁面,因為打包之后的會合并成一個入口文件出口不能寫同一個文件用代替以上配置并不能多頁面,還需要個模板,并且指明各自的代碼塊去生成

多頁面配置

進擊webpack 4 (基礎篇一)

進擊webpack4 (基礎篇二:配置)

## 多頁面配置 ##

多頁面配置即是多入口

entry需要寫成對象形式, 注意數組形式會變成多入口單頁面, 因為打包之后的chunks 會合并成一個!

//webpack.config.js
  entry:{
        home:["@babel/polyfill","./src/index.js"],
        login:["@babel/polyfill","./src/login.js"]
    }, // 入口文件
     

出口不能寫同一個文件 用[name]代替

output:{
    filename:"[name].js",  
    path:path.resolve(__dirname,"./dist") 
}

以上配置并不能多頁面, 還需要2個html模板,并且指明各自的chunks(代碼塊)

  plugins: [
    // new PluginName 去生成js對象供給 webpack compiler 調用
    new HtmlWebpackPlugin({
        template:"./index.html",
        filename:"index.html",
        chunks:["home"]
    }),
    new HtmlWebpackPlugin({
        template:"./login.html",
        filename:"login.html",
        chunks:["login"]
    }),
],

否則每個頁面會同時引入所有的js

devtools

在production下 打包后的代碼都被壓縮掉了,我們有時候需要調試代碼的時候沒法定位,devtools就是干這件事的

它有7種類型基本類型
eval: 每個module會封裝到 eval 里包裹起來執行,并且會在末尾追加注釋 //@ sourceURL.
source-map: 生成一個SourceMap文件.
hidden-source-map: 和 source-map 一樣,但不會在 bundle 末尾追加注釋.
inline-source-map: 生成一個 DataUrl 形式的 SourceMap 文件.
eval-source-map: 每個module會通過eval()來執行,并且生成一個DataUrl形式的SourceMap.
cheap-source-map: 生成一個沒有列信息(column-mappings)的SourceMaps文件,不包含loader的 sourcemap(譬如 babel 的 sourcemap)
cheap-module-source-map: 生成一個沒有列信息(column-mappings)的SourceMaps文件,同時 loader 的 sourcemap 也被簡化為只包含對應行的。

我們常用的是source-map

devtools:"source-map"

watch

watch:true,
watchOptions:{
    poll:5  // 每秒問5次要不要打包
}

可以實時監控打包 每當代碼變化就重新打包

其他的一些plugin

clean-webpack-plugin

每次打包之前清空原來的文件夾

yarn add clean-webpack-plugin -D
const cleanWebpackPlugin = require("clean-webpack-plugin")

plugins: [
    // new PluginName 去生成js對象供給 webpack compiler 調用

    new cleanWebpackPlugin("./dist")  // 指定需要清空的目錄

],

copy-webpack-plugin

用于文件的拷貝

yarn add copy-webpack-plugin -D
const copyWebpackPlugin= require("copy-webpack-plugin")

plugins: [
    // new PluginName 去生成js對象供給 webpack compiler 調用

    new copyWebpackPlugin({
        from:"xxx",
        to:"./"  // 在dist里
    })  // 指定從哪里拷貝到哪里

],

- webpack 可視化工具

yarn add webpack-bundle-analyzer -D
const BundleAnalyzerPlugin = require("webpack-bundle-analyzer").BundleAnalyzerPlugin;
plugins: [
    new BundleAnalyzerPlugin () 
]

跨域代理配置
devServer:{  
    proxy:{
       "/api":{
           target:"www.baidu.com",
           pathReWrite:{"/api":""},  // 請求/api的url  /api 會替換成"" ,并且自動加前綴target
           secure: false,  // 接受運行在 HTTPS 上,使用了無效證書的后端服務器
           changeOrigin: true, //虛擬一個服務器接收你的請求并代你發送該請求,
       } 
    },
    contentBase: "./dist",  //當前服務以哪個作為靜態資源路徑
    host:"localhost", // 主機名 默認是localhost
    port:3000, // 端口配置
    open:true, // 是否自動打開網頁
    compress:true // 是否精簡
}

如需多個代理, 多配制幾個proxy的key值就ok

resolve
 resolve:{
        modules:[path.resolve("node_modules")],  // 數組   可以配置多個  強制指定尋找第三方模塊的目錄 使得查找更快
        alias:{  //別名配置  import xxx from "src/xxx" ---> import xxx from "@/xxx"
            "@":path.resolve(__dirname,"./src")
        },
        extensions:[".css",".js",".json",".jsx"] // 自動添加后綴   加載模塊時候依次添加后綴 直到找到為止
    }
    
設置開發或者生產環境

webpack自帶插件webpack.definePlugin, 可以定義全局變量

webpack.definePlugin({
    Dev:""development"", // 注意雙引號里面套的是單引號的字符串
    Pro:""production"" // if(Dev==="development"){}else{//.....} 這樣在其他環境中使用定義不同接口地址
})

配置篇完

下一節 webpack 優化

對于沒有其他依賴的第三方庫, 不解析

webpack內置插件ignorePlugin 的使用

動態鏈接庫

多核并發打包

webpack的tree-shaking跟scope-hosting

公共js代碼的提取

懶加載

熱更新

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/102115.html

相關文章

  • 進擊webpack4 (優化篇)

    摘要:進擊基礎篇一進擊基礎篇二配置一進擊基礎篇三配置二不解析不依賴第三方模塊的模塊有一些第三方模塊,它本身不依賴于其他模塊,比如,,不去編譯這些庫,會使得打包更加快速是個正則或者包含正則的數組不去解析忽略 進擊webpack 4 (基礎篇一)進擊webpack4 (基礎篇二:配置 一)進擊webpack4 (基礎篇三:配置 二) 不解析不依賴第三方模塊的模塊 noParse 有一些第三方模塊...

    isaced 評論0 收藏0
  • 進擊webpack4基礎篇:配置 一)

    摘要:進入入口起點后,會找出有哪些模塊和庫是入口起點直接和間接依賴的。用于對模塊的源代碼進行轉換。指定生產還是開發入口文件打包后的文件名這里需指定一個絕對路徑我們需要的模塊去解析路徑包含一系列的規則是一個具有屬性的對象。 前文:進擊webpack 4 (基礎篇 一) webpack.config.js基礎配置 webpack 有4大概念 入口(entry) 輸出(output) load...

    FleyX 評論0 收藏0
  • 進擊的 JavaScript() 之 數據結構

    摘要:的垃圾回收器,進行回收。它們的數據就存放在堆內存中,大小不一定,動態分配內存,可隨時修改。引用類型的變量存的是其在堆內存中的地址,值的讀取,就是讀取這個內存地址中儲存的內容。 這東西還是很重要的,你要是搞懂了,就會去除很多困惑,比如不知道大家在學習js 的時候,有沒有對 基礎類型 和 引用類型 感到困惑過,兩者之間 表現的不同之處。 js 不同其他編程語言,它是腳本語言。所以,它的數...

    BlackFlagBin 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<