日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

webpack簡介:

  • webpack 是一個前端資源加載/打包工具。 他將根據模塊的依賴關系進行靜態分析,然后將這些模塊按照指定的規則生成對應的靜態資源

為什么使用webpack:

  • 轉換Es6語法
  • 轉換JSX
  • css預處理器/前綴補全
  • 圖片壓縮
  • 壓縮混淆——不讓源代碼邏輯直接暴露

一. webpack安裝:

  1. 安裝 node.js —— 要使用webpack,必須確保電腦上存在著node.js這個運行環境
  2. 安裝webpack —— 在命令行輸入命令 npm install webpack -g
  • npm 是 node.js 管理插件用的工具,install表安裝, -g表全局安裝
  • 在命令行輸入 webpack -v 查看其是否安裝成功,并查看其版本

二. 配置文件出入口

  • 首先創建一個文件 : webwebpack.config.js —— 這個文件就當作我們的配置文件
entry:

1. 單個entry(寫法1): module.exports = { entry: './input.js' 當前入口文件叫做 input.js } 2. 單個entry(寫法2): module.exports = { entry: { main: '.input.js' } }; 3.多個entry module.exports = { entry : { hame : './home.js', about:'./about.js' other:'./other.js' } } 復制代碼

output —— 出口就是webpack打包完成的輸出:

1.單個entry情況下對應的output: module.exports = { entry: './src/index.js', output: { path : path.resolve(_dirname,'dist'), //輸出后存儲的路徑 filename : 'output.bundle.js' // 輸出后文件的名字 } }; 2.多個entry情況下對應的output: module.exports = { entry : { hame : './home.js', about:'./about.js' other:'./other.js' }, output: { path : path.resolve(_dirname,'dist'), filename : '[name].bundle.js' // name會自動替換文件名為入口的屬性名 } } 復制代碼

三. loader-常用loader:

  • Webpack自身只支持加載js和json模塊,而Loader能讓webpack去處理其他類型的文件
  • loader需要下載,如果不知道要下什么,可根據報錯下載所需loader
url-loader - 將文件轉換為base64 url的webpack加載程序,通常用于處理圖片:

module.exports = { module: { rules : [{ test : /.(png|jpg|gif)$/i, //要匹配的文件 use : [{ loader : 'url-loader', //使用的規則 options : { limit:8192 //文件大小限制 } }] }] } }; 復制代碼

babel-loader - 把高版本的js向后(es5)兼容

module :{ rules:[ //這個是url-loader { test:/.(png|jpg|gif)$/i, use:[ { loader:'url-loader', options:{ limit:8192 } } ] }, //這個是babel-loader { test:/.m?js$/, //檢測將要匹配的文件 exclude: /(node_modules|bower_components)/, //要排除的文件 use:{ //使用了什么loader loader : 'babel-loader', options:{ presets:['@babel/preset-env'] //使用什么規則 } } } ] } 復制代碼

sass-loader:

module.exports = { module: { rules : [ // sass { test: /.s[ac]ss$/i, use: [ 'style-loader', 'css-loader', 'sass-loader', ], }, ] } }; 復制代碼

四. Plugin-常用插件:

  • Plugin和loader是兩個比較混淆和模糊的概念。Loader是用來轉換和加載特定類型的文件,所以loader的執行層面是單個的源文件。而plugin可以實現的功能更強大,plugin可以監聽webpack處理過程中的關鍵事件,深度集成進webpack的編譯器,可以說plugin的執行層面是整個構建過程。Plugin系統是構成webpack的主干,webpack自身也基于plugin系統搭建,webpack有豐富的內置插件和外部插件,并且允許用戶自定義插件
  • 與loader不同的是,使用plugin我們必須先引用該插件
例如:

const webpack = require('webpack'); // 用于引用webpack內置插件 const htmlWebpackPlugin = require('html-webpack-plugin'); // 外部插件 module.exports = { plugins: [ new webpack.HotModuleReplacementPlugin(), new HtmlWebpackPlugin({template: './input.html'}) ] }; 復制代碼

minCssExtract:

plugins:[ new MiniCssExtracPlugin({ filename:'[name].css', //name 為 entry里的名字 不是必須設置 chunkFilename: '[id].css' //不是必須設置 }) ] //要使用這個的時候,要在sass-loader中的use里在配置一下,將style-loader換成這個MiniCssExtracPlugin.loader 復制代碼

DefinePlugin:

- definePlugin允許創建可以配置的全局常量 new webpack.DefinePlugin([ 'service_url' : josn.stringify('http://www.baidu.com') // service_url 為變量,這樣即使改變訪問的地址,也可以通過變量來控制 ]) 復制代碼

HtmlWebpackPlugin-幫助我們生成html文件

1. 系統默認生成的: plugins: [ new HtmlWebpackPlugin() // 這樣就能執行了-> 就會生成index.html文件,并且會自動幫我們引入js和css文件 ] 2. 我們自定義的 new HtmlWebpackPlugin({ title: 'My App', //html的title filename: 'indexa.html' //生成的文件名字 template: 'template.html' //自己的輸入文件的內容——在創建一個template.html文件 //就可以在template.html文件里定義title —— 在title標簽里輸入<%= htmlWebpackPlugin.options.title %> //同樣也可在此文件里引用script 或 其他不需要打包的div }) //之后我們indexa.html里,就會出現template.html文件里定義的東西 復制代碼

五. DevServer-熱更新:

module.exports = { //... devServer: { contentBase: path.join(__dirname, 'dist'), //在哪個目錄下啟動該插件 ,并且此dist要與上面的output 相一致 compress: true, //是否壓縮 port: 9000 // 啟動的端口 // hot: true // 熱替換 不寫也是熱替換 現在寫true有可能報錯,所以還是別寫了吧 } }; 復制代碼

注:

  • 通常我們都會初始化文件 獲得查看配置文件的文件。
  • npm init - y

作者:Honer

鏈接:https://juejin.im/post/5da898376fb9a04dea5df587

來源:掘金

著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

分享到:
標簽:webpack
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定