国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

關(guān)于webpack的基本配置

這篇具有很好參考價(jià)值的文章主要介紹了關(guān)于webpack的基本配置。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。


前言

為什么要有webpack構(gòu)建和打包?

  • 更好的模塊化管理。webpack支持模塊化規(guī)范:代碼分割成獨(dú)立模塊,并管理模塊之間的依賴關(guān)系。
  • 資源打包。將js文件、css文件、圖片等多個(gè)資源打包成單個(gè)或多個(gè)文件,減少請(qǐng)求,提高加載性能性能,且webpack支持資源壓縮、優(yōu)化、緩存等處理。
  • 轉(zhuǎn)換和編譯。如用Bable將ES6+代碼轉(zhuǎn)為向后兼容版本如ES5,將sass、less、stylus轉(zhuǎn)為瀏覽器能識(shí)別的css代碼,將ts轉(zhuǎn)為js等。
  • 代碼拆分和懶加載。當(dāng)應(yīng)用程序變得復(fù)雜時(shí),打包文件體積也會(huì)變大,導(dǎo)致初始加載時(shí)間太長(zhǎng)。因此可以對(duì)代碼進(jìn)行拆分,按需加載。
  • 插件系統(tǒng)和擴(kuò)展性。Webpack具有強(qiáng)大的插件系統(tǒng),提供了許多插件和工具,以滿足不同項(xiàng)目的需求。

一、webpack基本配置

1.配置拆分和merge

mode表示以什么模式打包;
使用development模式,打包后的代碼可閱讀,沒(méi)被壓縮;
使用production模式,代碼會(huì)被壓縮。

const path = require('path');
module.exports = {
	mode:'development', // production 生產(chǎn)環(huán)境
	entry:{
		app: './src/main.js',
		list: './src/main.js'
	},
	output:{
		path.resolve(__dirname, 'dist');
		filename: '[name].js'
	}
}

開(kāi)發(fā)環(huán)境和生產(chǎn)環(huán)境是不一樣的,為了解決手動(dòng)改更改mode帶來(lái)的不便,所以將這些打包配置拆分到不同文件中:

  • 通用配置:webpack.common.js
  • dev配置: webpack.dev.js
  • prod配置:webpack.prod.js
// webpack.common.js
const path=require('path')
const srcPath=path.join(__direname,'..','src')
const distPath=path.join(__dirname,'..'.'dist')
module.exports={
 entry:{
  path:path.join(srcPath,'index')
 }
}

由于我們拆分了配置,公共的一些配置項(xiàng)不需要在dev和prod里面再去重新寫(xiě),所以我們需要把webpack.common.js分別和dev,prod建立連接。
這時(shí)需要安裝webpack-merge這個(gè)插件

npm i webpack-merge -D

安裝完成后需要在dev和prod里面分別引入:

// webpack.dev.js
const path=require('path')
const srcPath=path.join(__direname,'..','src')
const distPath=path.join(__direname,'..','dist')
const {merge}=require('webpack-merge')
const webpackCommonConf=require('./webpack.common')

module.exports=merge(webpackCommonConf,{ // 合并
 mode:'development'
})

// webpack.prod.js
const path=require('path')
const srcPath=path.join(__direname,'..','src')
const distPath=path.join(__direname,'..','dist')
const {merge}=require('webpack-merge')
const webpackCommonConf=require('./webpack.common')

module.exports=merge(webpackCommonConf,{ // 合并
  mode:'production'
  output:{
    filename:'bundle.[contentHash:8].js',
    path:path.join(distPath)
  }
})

然后修改package.json中的build命令:

"scripts":{
  "build":"webpack --config build/webpack.prod.js",
  "devBuild": "webpack --config build/webpack.dev.js",
 }

生產(chǎn)模式打包:npm run build
開(kāi)發(fā)模式打包:npm run devBuild

2. 啟動(dòng)服務(wù)

1)

// webpack.common.js
//首先使用 npm i html-webpack-plugin -D 安裝 html-webpack-plugin
// 然后配置入口文件,啟動(dòng)服務(wù)后會(huì)打包生成html文件
const HtmlWebpackPlugin=require('html-webpack-plugin')
module.exports={
 plugins:[
   new HtmlWebpackPlugin({
     template:path.join(srcPath,'index.html'),
     filename:'index.html'//打完包以后的文件名稱
     chunks:["index"] //這里的chunks代表的意思是引入的是哪一個(gè)入口文件,我引入的就是src下建立的index.js文件
  })
 ]
}

2)安裝 npm i webpack-dev-server -D

// webpack.dev.js 版本4.x
module.exports=merge(webpackCommonConf,{
 devServer:{
  port:3000,
  static:distPath,//根目錄
  open:true,//自動(dòng)打開(kāi)瀏覽器
  compress:true,//啟動(dòng)壓縮
  //如果需要跨域請(qǐng)求接口
  proxy:{
   '/api':{
        target:'http://localhost:3000'
      }
  }
 }
})
  1. 配置dev命令,在package.json文件中
"script":{
  "dev":"webpack-dev-server --config build/webpack.dev.js"
}

npm run dev啟動(dòng)服務(wù)。

3、處理es6,配置babel

對(duì)于現(xiàn)代瀏覽器而言,有些ES6語(yǔ)法是無(wú)法被解析的,因此需要babel將ES6解析ES5,這也解決了瀏覽器兼容性問(wèn)題。
1)首先安裝babel-loader:

npm i babel-loader -D //我這里是^8.0.6版本的
npm i babel-core -D//babel-core包含了一些babel里面的api
npm i babel-preset-env -D //提供執(zhí)行環(huán)境

2)在根目錄新建.babelrc文件

{
  "presets": ["babel-preset-env"],
  "plugins": []
}

3)在webpack.common.js中配置babel

module.exports = {
// ...
	module:{
	 rules:[
	   {
	    test:/\.js$/,
	    loader:['babel-loader'],
	    include:srcPath,
	    exclude:/node_modules/
	   }
	 ]
	}
// ...
}

4、處理樣式

一般也是在webpack.common.js中配置,無(wú)論在開(kāi)發(fā)模式還是生產(chǎn)模式都需要處理樣式。

1)對(duì)于css文件
安裝:

npm i css-loader -D
npm i style-loader -D

配置如下:

module:{
 rules:[
  {
   test:/\.css$/,
   loader:['style-loader','css-loader']//執(zhí)行順序?yàn)閺暮蟮角?/span>
  }
 ]
}

2)對(duì)于less等預(yù)處理器
安裝:

npm i less -D
npm i less-loader -D

配置:

module:{
 rules:[
  {
  test:/\.less/,
  loader:['style-loader','css-loader','less-loader']
  }
 ]
}

3)postcss-loader可以做兼容瀏覽器,有些css語(yǔ)法不是所有瀏覽器都兼容,postcss-loader就可以幫我們做這些事情。
postcss-loader是一個(gè)比較大的插件,里面可以再引入一些別的功能,如autoprefixer:

安裝 : npm install postcss autoprefixer

在公共配置文件中配置postcss:

{
	test: /\.css$/,
	// loader 的執(zhí)行順序是:從后往前
	loader: ['style-loader', 'css-loader', 'postcss-loader'] // 加了 postcss
},

配置autoprefixer,新建postcss.config.js,配置如下代碼:

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

autoprefixer是一個(gè)后處理程序,而可以同sass、stylus或less等預(yù)處理器共同使用。它適用于普通的css,無(wú)需關(guān)心你要為哪些瀏覽器加前綴,只需關(guān)注于實(shí)現(xiàn),并使用w3c最新規(guī)范。一般配合postcss一起使用

5、處理圖片

對(duì)于圖片的處理一般分為dev和prod環(huán)境下的處理,主要原因是圖片一般是在根目錄下,打包以后希望全部輸出到img文件夾里面,而且需要對(duì)圖片的大小做一些精細(xì)化的配置處理。

對(duì)圖片的使用有這三種:

  • 在html中的src標(biāo)簽中使用
  • 在js中import中使用
  • 在css中使用,比如背景圖片

對(duì)于第一種,需要安裝html-withimg-loader:

npm i html-withimg-loader -D //^0.1.16
module:{
 rules:[
  {
    test:/\.html$/
    use:'html-withimg-loader'
  }
 ]
}

對(duì)于第二種和第三種情況:安裝file-loader

npm i file-loader -D
module:{
 rules:[{
   test:/\.(jpg|png|gif)$/,
   use:'file-loader'
 }]
}

webpack.prod.js,在這個(gè)文件里對(duì)圖片做一些精細(xì)化配置,需要安裝url-loader:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-629972.html

npm i url-loader -D
module:{
 rules:[{
  test:/\.(png|jpg|gif)$/,
  use:{
   loader:'url-loader',
   options:{
      limit:1024*5,//小于5kb的圖片會(huì)被輸出為base64格式
      outputPath:"/img/" //全部輸出到img文件夾里面
    }
   }
 }]
}

到了這里,關(guān)于關(guān)于webpack的基本配置的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【快速搞定Webpack4】基本配置及開(kāi)發(fā)模式介紹(二)

    【快速搞定Webpack4】基本配置及開(kāi)發(fā)模式介紹(二)

    在開(kāi)始使用 webpack 之前么,我們需要對(duì) Webpack 的配置有一定的認(rèn)識(shí)。 1. enty(入口) 指示 webpack 從哪個(gè)文件開(kāi)始打包 2. output(輸出) 指示 webpack 打包完的文件輸出到哪里去,如何命名等 3. loader(加載器) webpack 本身只能處理 js、json 等資源,其他資源需要借助 loader 、 webp

    2024年02月21日
    瀏覽(26)
  • 【快速搞定Webpack5】基本配置及開(kāi)發(fā)模式介紹(二)

    【快速搞定Webpack5】基本配置及開(kāi)發(fā)模式介紹(二)

    在開(kāi)始使用 webpack 之前么,我們需要對(duì) Webpack 的配置有一定的認(rèn)識(shí)。 1. enty(入口) 指示 webpack 從哪個(gè)文件開(kāi)始打包 2. output(輸出) 指示 webpack 打包完的文件輸出到哪里去,如何命名等 3. loader(加載器) webpack 本身只能處理 js、json 等資源,其他資源需要借助 loader 、 webp

    2024年02月21日
    瀏覽(17)
  • 關(guān)于nginx的linux命令 以及 基本配置文件的配置

    關(guān)于nginx的linux命令 以及 基本配置文件的配置

    nginx介紹 反向代理,https,動(dòng)靜分離(web 服務(wù)),負(fù)載均衡 (反向代理),web 緩存 內(nèi)存少,并發(fā)能力強(qiáng)(支持50,000 個(gè)并發(fā)) 配置文件默認(rèn)是放在/usr/local/nginx/conf/nginx.conf,配置文件中默認(rèn)有三大塊:全局塊、events塊、http塊。 我們主要修改http塊: 反向代理 server { location

    2023年04月23日
    瀏覽(25)
  • webpack安裝和使用及超詳細(xì)配置一個(gè)基本vue項(xiàng)目的全部流程(包括路由、less、引入圖片渲染)

    webpack安裝和使用及超詳細(xì)配置一個(gè)基本vue項(xiàng)目的全部流程(包括路由、less、引入圖片渲染)

    webpack官網(wǎng): https://webpack.docschina.org/concepts/ 一:搭建一個(gè)簡(jiǎn)單的webpack項(xiàng)目 1:準(zhǔn)備工作 需要在node環(huán)境才能使用webpack,所以需要先安裝node,安裝node請(qǐng)自行百度。dddd 如圖,我這里使用的是14.17.0版本的 2:初始化項(xiàng)目 首先創(chuàng)建一個(gè)文件夾,這里我的命名是myWebpack,然后使用n

    2024年02月02日
    瀏覽(23)
  • node.js+NPM包管理器+Webpack打包工具+前端項(xiàng)目搭建

    node.js+NPM包管理器+Webpack打包工具+前端項(xiàng)目搭建

    javascript運(yùn)行環(huán)境(無(wú)需依賴html文件) BFF,服務(wù)于前端的后端 官網(wǎng)下載安裝,node -v查看是否安裝成功 ①、創(chuàng)建一個(gè)01.js文件 ②、通過(guò)CMD命令執(zhí)行(或者通過(guò)工具的集成終端) node 01.js 如果出現(xiàn)權(quán)限原因,可以通過(guò)管理員方式打開(kāi)工具 ③、通過(guò)瀏覽器訪問(wèn)http://127.0.0.1:8888 如

    2024年02月07日
    瀏覽(44)
  • 【詳細(xì)教程】關(guān)于如何使用Git&GitHub的基本操作匯總&GitHub的密鑰配置 ->(個(gè)人學(xué)習(xí)記錄筆記)

    【詳細(xì)教程】關(guān)于如何使用Git&GitHub的基本操作匯總&GitHub的密鑰配置 ->(個(gè)人學(xué)習(xí)記錄筆記)

    點(diǎn)擊 官網(wǎng)鏈接 后,進(jìn)入Git官網(wǎng),下載安裝包 然后根據(jù)系統(tǒng)類型進(jìn)行下載,一般為windows 一般選擇64位的安裝器版本 下載好后開(kāi)始安裝 點(diǎn)擊Next 默認(rèn)即可,Next 默認(rèn)即可,Next Next Next Next Next Next Next Next Next Next install即可 我們?cè)谧烂骐S便創(chuàng)建一個(gè)文件夾例如code 進(jìn)入code文件夾 鼠

    2024年02月06日
    瀏覽(27)
  • AJAX入門(mén)到實(shí)戰(zhàn),學(xué)習(xí)前端框架前必會(huì)的(ajax+node.js+webpack+git)(七)

    AJAX入門(mén)到實(shí)戰(zhàn),學(xué)習(xí)前端框架前必會(huì)的(ajax+node.js+webpack+git)(七)

    實(shí)操: server.js utils/lib/index.js utils/package.json 從別處(網(wǎng)上、其他人手中)拿到寫(xiě)好的項(xiàng)目,一般不攜帶node_modules文件夾(所占存儲(chǔ)空間大) 但有package.json文件,里面記載了當(dāng)前項(xiàng)目下載過(guò)的包 還有package-lock.json文件,固定軟件包的版本 導(dǎo)入模塊/包,除了自己創(chuàng)建的模塊、包

    2024年01月22日
    瀏覽(67)
  • 【Node.JS】初入前端,學(xué)習(xí)node.js基本操作

    【Node.JS】初入前端,學(xué)習(xí)node.js基本操作

    NPM是隨同NodeJS一起安裝的包管理工具,能解決NodeJS代碼部署上的很多問(wèn)題,常見(jiàn)的使用場(chǎng)景有以下幾種: npm可以分為全局安裝和本地安裝 Node所有API都支持回調(diào)函數(shù),回調(diào)函數(shù)一般作為API的最后一個(gè)參數(shù)出現(xiàn) 阻塞代碼實(shí)例 非阻塞代碼示例 語(yǔ)法分析 具體示例 事件監(jiān)聽(tīng)器就是

    2023年04月25日
    瀏覽(26)
  • 關(guān)于vue運(yùn)行報(bào)錯(cuò):webpack < 5 used to include polyfills for node.js core modules by default.

    關(guān)于vue運(yùn)行報(bào)錯(cuò):webpack < 5 used to include polyfills for node.js core modules by default.

    在使用vue3開(kāi)發(fā)時(shí)安裝使用web3等工具,運(yùn)行報(bào)錯(cuò) 解決方案 1.安裝 node-polyfill-webpack-plugin 2.vue.config.js中修改配置 再次運(yùn)用,問(wèn)題解決~ 原因是由于在webpack5中移除了nodejs核心模塊的polyfill自動(dòng)引入,所以需要手動(dòng)引入,如果打包過(guò)程中有使用到nodejs核心模塊,webpack會(huì)提示進(jìn)行相

    2024年02月16日
    瀏覽(20)
  • AJAX入門(mén)到實(shí)戰(zhàn),學(xué)習(xí)前端框架前必會(huì)的(ajax+node.js+webpack+git)(五)—— 項(xiàng)目-新聞?lì)^條-數(shù)據(jù)管理平臺(tái)-ajax綜合案例前端

    AJAX入門(mén)到實(shí)戰(zhàn),學(xué)習(xí)前端框架前必會(huì)的(ajax+node.js+webpack+git)(五)—— 項(xiàng)目-新聞?lì)^條-數(shù)據(jù)管理平臺(tái)-ajax綜合案例前端

    愿許秋風(fēng)知我意,解我心中意難平。 推薦使用, 每個(gè)程序員都有自己的管理方式。 HTML結(jié)構(gòu): 1.為什么要提取公共前綴地址(基地址),因?yàn)楣緲I(yè)務(wù)可能會(huì)更換服務(wù)器,如果你不想一條一條地修改請(qǐng)求地址的話。 后續(xù)使用axios時(shí),url不需要再寫(xiě)前綴。 2.請(qǐng)求成功與失敗 成

    2024年01月25日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包