一、新建專案
二、包管理管理專案
npm init -y,// 當建立的專案根目錄名稱是中文或者包含中文,就不能使用 -y 命令
// 直接使用 npm init 之後會讓你手寫專案名稱
"keywords": ,
"author": "",
"license": "isc"
}// 生成了 package.json 檔案,該檔案集中管理了專案中所用到的包
三、安裝webpack
cnpm install webpack -g四、webpack.config.js 配置檔案cnpm install webpack-cli -g
在專案根目錄新建 webpack.config.js 檔案。先進行一些基礎的配置
// 由於webpack是基於node進行構建的,所以,webpack配置檔案中,任何合法的node**都是可以識別的配置完成後在控制台執行命令:webpack 就可以進行打包了,可以看到dist資料夾下面生成了output.bundle.js檔案const path = require('path');
// 當以命令列形式執行webpack 或者 webpack-dev-server 時,沒有提供要打包的檔案入口和出口檔案,
// 就會檢查專案根目錄中的配置檔案,並讀取這個檔案,就可以拿到這個配置物件,根據這個物件進行打包
module.exports = ,
mode:'development'
}// 這裡首先配置了專案打包的入口檔案,出口檔案,打包的模式
五、打包完成後,可以在index.html檔案中引用打包好的js檔案
// main.js 檔案六、webpack-dev-serverconsole.log('ok');
// index.html 檔案// 執行index.html 開啟控制台,可以看到輸出了ok
現在我們每修改一次**,就需要重新執行一次,怎樣才能自動執行打包呢?
這裡需要安裝乙個工具 webpack-dev-server
cnpm install webpack-dev-server -d// -d 的方式會將這個包安裝後放到package.json中的devdependencies裡面
peerdependencies warning webpack-dev-server@* requires a peer of webpack@^4.0.0 but none was installed注意上面我們已經使用過cnpm install webpack -g命令來安裝webpack,這與cnpm install webpack -d是不一樣的,前者安裝可以使我們在控制台執行webpack相關命令,後者安裝包,用包管理工具進行管理,執行命令之前可以看一下package.json中的devdependencies裡面是沒有webpack的// webpack-dev-server 依賴於webpack,需要進行安裝
cnpm install webpack -d此時的package.json檔案中:cnpm install webpack-cli -d
安裝好包之後還需要在package.json中新增指令碼:
"scripts": ,七、執行 npm run devdev 表示當執行命令列 npm run dev 時,局相當於執行它後面的命令
--open 自動開啟
--port 3000 指定埠號3000
--contentbase src 指定資源的路徑為 src 資料夾
--hot 開啟熱更新
會發現此時會報錯,找不到output.bundles.js檔案
webpack託管了我們的資源,託管的目錄為根路徑,那麼埠號3000之後就可以跟上output.bundles.js檔案,所以問題出在了index.html中script標籤中的src值。
解決方法為:
1、將src的值改為 src="/output.bundles.js"
2、將原來的script標籤注釋掉,使用htmlwebpackplugin在記憶體上生成乙個一模一樣的頁面,會自動將output.bundles.js注入到頁面。
八、html-webpack-plugin
1、安裝:
cnpm install --s**e-dev html-webpack-plugin -d2、在webpack.config.js中進行配置
const path = require('path');3、執行// 在記憶體中,根據指定的模板頁面,生成乙份記憶體中的首頁,同時自動把
// 打包好的output.bundles.js注入到頁面底部
// 配置外掛程式需要在物件中掛載乙個plugins節點
const htmlwebpackplugin = require('html-webpack-plugin');
module.exports = ,
mode:'development',
plugins:[ // 所有webpack外掛程式的配置節點
new htmlwebpackplugin()]}
成功輸出了 ok
九、css樣式打包---loader
// 新增css 資料夾,index.css檔案執行之後會報錯:npm run devhtml,body
// main.js 檔案,引入樣式檔案
import './css/index.css'
1、安裝:
cnpm install style-loader --s**e-dev -d2、配置:cnpm install css-loader --s**e-dev -d
const path = require('path');此時的package.json檔案:// 在記憶體中,根據指定的模板頁面,生成乙份記憶體中的首頁,同時自動把
// 打包好的output.bundles.js注入到頁面底部
// 配置外掛程式需要在物件中掛載乙個plugins節點
const htmlwebpackplugin = require('html-webpack-plugin');
module.exports = ,
mode:'development',
plugins:[ // 所有webpack外掛程式的配置節點
new htmlwebpackplugin()
],module:]}
}
可以執行成功了,那麼less檔案呢?
同樣的先安裝相應的loader:
cnpm install --s**e-dev less-loader less -d同樣的還有sass檔案;
cnpm install sass-loader node-sass --s**e-dev -d注意:在安裝loaders時,可以在每乙個loader後面加上@latest,這表示安裝最新的包,有時如果包不是最新的,會報錯;還要的情況下安裝了最新的包也不行,可以試試@next,這表示安裝的是已經開發好但還沒有對外發布的。
webpack基本配置
demo及筆記 前端構建工具webpack的學習 什麼是webpack?webpack可以做什麼?1.優化 刪除多餘的冗餘 壓縮 2.轉換 jsx,es6,es6的語法轉換,less,sass等預編譯處理器的轉換 3.打包 合併多餘檔案,減少請求次數,加快響應 4.devserver 解決跨域問題。...
webpack基本配置
1 context context path.resolve dirname,js 配合entry,含義是從當前專案目錄下的js檔案下查詢入口檔案基本目錄,絕對路徑,用於從配置中解析入口起點和載入器。2 entry entry js main.js 應用程式的起點入口,從這個起點開始,應用程式啟動執...
基本的webpack配置
全域性安裝npm install webpack g本地安裝npm install webpack webpack cli webpack dev server d建立webpack.config.js檔案 在package.json的scripts中新增以下 如果webpack.config.js...