爲什麼要學習webpack?
1、webpack 是當下最熱門的前端資源模塊化管理和打包工具。它可以將許多鬆散的模塊按照依賴和規則打包成符合生產環境部署的前端資源。
還可以將按需加載的模塊進行代碼分隔,等到實際需要的時候再異步加載。通過 loader 的轉換,任何形式的資源都可以視作模塊.
比如 CommonJs 模塊、 AMD 模塊、 ES6 模塊、CSS、圖片、 JSON、Coffeescript、 LESS 等
--------------------------------------------------引用來自webpack文檔
2、vue-cli腳手架使用的webpack作爲打包工具
3、後面會學習使用vue-cli腳手架,所以必須熟悉webpack
安裝webpack
方法1:npm install webpack -g //全局安裝
方法2:npm install webpack --save //安裝到你的項目目錄
關於npm安裝速度慢,以及某些包被牆無法安裝的問題,稍後會針對性寫一篇文章
準備工作
npm install webpack --save //安裝到你的項目目錄
var div2 = document.createElement('div');
div2.textContent = "hello vuejs";
document.getElementById('main').appendChild(div2);
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div id="main">
</div>
<script src="dist/bundle.js"></script>
</body>
</html>
開始使用webpack
語法:
webpack 入口文件 輸出文件
本實例:
webpack src/main.js dist/bundle.js
webpack.config.js
module.exports = {
entry: __dirname + '/src/main.js',//入口文件
output: { //輸出文件
path: __dirname + '/dist/', //文件打包後存放文件的目錄
filename: 'bundle.js' //文件打包後存放的文件的文件名
}
};
使用package.json中的腳本打包文件
"build": "webpack --progress" //--progress 顯示進度(json文件不允許添加註釋,這裏只爲解釋progress)
npm run build
哈哈,還是npm大法好啊!
div2.setAttribute('style','color: red');
webpack-dev-server
npm install webpack-dev-server -g //全局安裝
npm install webpack-dev-server --save-dev //安裝到當前項目
2、在webpack.config.js文件中配置以下內容devServer: {
contentBase: __dirname,//告訴服務器從哪裏提供內容。只有在你想要提供靜態文件時才需要
publicPath: '/dist/',//使此路徑下的打包文件可以在瀏覽器中使用
inline: true, //使用內聯模式,當內容改變實時重載時,腳本將被插入到你的包(bundle)中,並且構建消息將會出現在瀏覽器控制檯
open: true //瀏覽器打開
}
webpack-dev-server
node_modules/.bin/webpack-dev-server
console.log("不用每次都重新打包文件啦")
"dev": "webpack-dev-server --open --inline"