零基礎學習webpack打包管理

  這些天在項目之餘的時間學習了webpack打包項目的東西,很是榮幸的找到一些大神的文章來學習,死勁嚼了幾天,終於略知一二。在之後的工做上還需繼續學習,下面我將分享我這幾天學到的一點東西,但願能讓我一個還不算入門webpack的小白領你們入門。本文主要仍是摘抄大神的文章加上本身手動的一些過程記錄,不喜勿噴,謝謝!開車了!!!開車了!!!css

  1、什麼是Webpackhtml

  webpack 是一個現代 JavaScript 應用程序的模塊打包器(module bundler)。當 webpack 處理應用程序時,它會遞歸地構建一個依賴關係圖(dependency graph),其中包含應用程序須要的每一個模塊,而後將全部這些模塊打包成少許的 bundle - 一般只有一個,由瀏覽器加載。vue

  webpack的工做原理:把你的項目當作一個總體,經過一個給定的主文件(如:index.js),Webpack將從這個文件開始找到你的項目的全部依賴文件,使用loaders處理它們,最後打包爲一個(或多個)瀏覽器可識別的JavaScript文件。node

  

 

  2、webpack的使用webpack

  一、新建項目目錄git

  咱們能夠先把相關的,基本文件及目錄新建好,而後進入到項目中:github

  

  2項目初始化web

  webpack安裝完成後,咱們緊接着輸入命令來初始化項目,初始化命令:npm init; 在初始化的過程當中,終端會問你一系列諸如項目名稱,項目描述,做者等信息,不過不用擔憂,若是你不許備在npm中發佈你的模塊,這些問題的答案都不重要,回車默認便可,這時候項目中會多一個配置文件express

  

  這時候,目錄中會生成一個package.json文件,這是一個標準的npm說明文件,裏面蘊含了豐富的信息,包括當前項目的依賴模塊,自定義的腳本任務等等。npm

  接着咱們開始安裝相關的依賴:  npm install webpack webpack-dev-server vue-loader vue-html-loader css-loader vue-style-loader vue-hot-reload-api babel-loader babel-core babel-plugin-transform-runtime babel-preset-es2015 babel-runtime@5 --save-dev

  npm install vue --save。這時候在package.json文件中咱們能夠看到已安裝相關的依賴包。

  

  安裝完依賴,咱們對相應的文件進行編輯:

  index.html文件                                                       main.js文件                                                                 App.vue文件

      

  在項目目錄下新建 build 目錄,用來存放咱們的構建相關的代碼文件等,而後在build目錄下新建 webpack.config.js 這是咱們的webpack配置文件,webpack須要經過讀取你的配置,進行相應的操做。

   

  上例中,相信你已經看懂了個人配置,入口文件是main.js文件,配置了相應輸出,而後使用 vue-loader 去加載 .vue 結尾的文件,接下來咱們就能夠構建項目了,咱們能夠在命令行中執行:

  webpack --display-modules --display-chunks --config build/webpack.config.js

  這是可能會拋出一個錯誤:這時咱們須要再安裝這個依賴,npm install vue-template-compiler --save-dev, 而後從新跑上面的命令,這是打包就成功了,而且在根目錄中多了一個 dist/static目錄(裏面有一個咱們打包輸出的js文件)

 

  

  

  這時候運行:webpack --display-modules --display-chunks --config build/webpack.config.js,恭喜你,你的項目已經簡單的配好了打包,能夠正常運行了。

  

  3、webpack插件的使用

  首先安裝 html-webpack-plugin 插件:npm install html-webpack-plugin --save-dev

  這時候咱們的webpack.config.js文件要作修改,以下:

  

  執行命令:webpack --display-modules --display-chunks --config build/webpack.config.js,這時候咱們輸出的目錄會多出一個index.html文件,而且在瀏覽器中能夠正常運行該文件:

    

  4、中間件的使用

  1、webpack-dev-middleware

    安裝須要的中間件依賴包:npm install webpack-dev-middleware webpack-hot-middleware --save-dev

  使用中間件的目的是爲了提升開發效率,提供熱加載。另外還需安裝express,這是一個nodejs框架,安裝命令:npm install express --save-dev

  裝完依賴以後,咱們須要在build目錄下新建一個dev-server.js文件,並編輯相應內容:

  

  這時候咱們能夠運行服務,而且監聽localhost: 8866,很開心,你會發現你的服務成功的啓動了,是否是感受要擺上幾圍慶祝慶祝一下!

  

   然而,你別高興太早,當你在瀏覽器運行localhost:8866時,你會發現頁面並無出來,而且還報一個404的錯誤,恭喜你,你能夠沮喪一會了!

  

  不要着急,我們如今來解決這個問題,咱們得在webpack.config.js文件裏面作一點修改,以下:

  一、將 config.output.publicPath 修改成 ‘/‘;

  二、將 plugins 中 HtmlWebpackPlugin 中的 filename 修改成 ‘index.html’;

  三、重啓服務

    啓動服務成功!!!

  可是這樣開發模式下的確是成功了,但是咱們直接修改了 webpack.config.js 文件,這就意味着當咱們執行 構建命令 的時候,配置變了,那麼咱們的構建也跟着變了,因此,一個好的方式是,不去修改webpack.config.js文件,咱們在build目錄下新建一個 webpack.dev.conf.js文件,意思是開發模式下要讀取的配置文件,並寫入一下內容:

  

  而且咱們的dev-server.js文件要作相應的修改,將原來的:var config = require('./webpack.config') 改成 var config = require('./webpack.dev.config'),而後重啓服務,一樣是能夠啓動成功!

  2、webpack-hot-middleware

  webpack-hot-middleware 只配合 webpack-dev-middleware 使用,它能給你提供熱加載。  

  這時,咱們須要對相應的文件作修改

  webpack.dev.conf.js文件:

  

   webpack.config.js文件中入口配置中添加 ‘webpack-hot-middleware/client’,以下:

  

  dev-server文件:

  

  重啓服務,而後修改你的index.html頁面,此時熱加載成功!

      

 

  最後,咱們設置一下快捷鍵,在package.json文件上修改一下,這樣咱們就能夠經過:npm run build來打包項目,npm run dev跑項目了

  

 

  到此結束! 

  源碼地址:https://github.com/Jacky-MYD/webpack

相關文章
相關標籤/搜索