使用webpack4編譯并壓縮ES6代碼的方法示例
前段時(shí)間第一次接觸了layabox游戲引擎做了一個(gè)項(xiàng)目,由于ES6相當(dāng)好用,所以在項(xiàng)目中使用了很多的ES6語法,但是在發(fā)布的時(shí)候發(fā)現(xiàn)該引擎無法壓縮ES6的代碼,而不進(jìn)行壓縮的話則代碼體積比較大
然后其實(shí)該引擎會(huì)將自己寫的代碼打包在一個(gè)js文件中,所以也就只有一個(gè)js文件是沒有壓縮的,所以我就想到了自己使用webpack單獨(dú)對這個(gè)文件進(jìn)行壓縮,并將ES6語法編譯成ES5,做低版本瀏覽器的兼容。
第一步安裝webpack
1) 全局安裝webpack4
npm install webpack -g
創(chuàng)建一個(gè)文件夾(webpack4-babel-uglify),初始化項(xiàng)目
cd webpack4-babel-uglify npm init -y npm install webpack webpack-cli --save-dev
安裝編譯ES6的依賴插件
npm install babel-core babel-loader@7 babel-plugin-transform-runtime babel-preset-env --save-dev npm install babel-polyfill babel-runtime --save
在根目錄下創(chuàng)建src目錄,將需要編譯壓縮的js放在src目錄下
mkdir src
配置webpack.config.js
module.exports = { mode:'development', entry: { app: [ "babel-polyfill", "./src/index.js" //需要壓縮的js,目前只支持單個(gè)文件一個(gè)一個(gè)壓縮 = =! ], }, output: { path: path.resolve(__dirname, 'dist'), //輸出目錄 filename: 'index.js' //輸出文件名稱,建議與源文件同名 }, module: { rules: [{ test: /\.js$/, exclude: /(node_modules)/, use: { loader: "babel-loader" } }] } };
在根目錄下新建.babel文件,設(shè)置babel相關(guān)配置
{ "presets": [ [ "env", { "targets": { "browsers": [ //瀏覽器版本 "> 1%", "last 2 versions", "not ie <= 8", "iOS >= 6", "safari >= 6", "Firefox >= 20", "Android > 4", "android >= 4.4" ] } } ] ], "plugins": ["transform-runtime"] }
修改package.json中的打包命令
"scripts": { ... "build": "webpack" //新增這條命令 }
將需要壓縮編譯的js文件放入src下,并修改第五步中的文件名,之后執(zhí)行打包命令
npm run build
至此,壓縮編譯成功,壓縮編譯后的文件在dist目錄下
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
javaScript中push函數(shù)用法實(shí)例分析
這篇文章主要介紹了javaScript中push函數(shù)用法,較為詳細(xì)的分析了javascript中push函數(shù)的功能、定義及使用技巧,需要的朋友可以參考下2015-06-06基于Bootstrap使用jQuery實(shí)現(xiàn)簡單可編輯表格
這篇文章主要介紹了基于Bootstrap使用jQuery實(shí)現(xiàn)簡單可編輯表格的相關(guān)資料,需要的朋友可以參考下2016-05-05javascript引擎長時(shí)間獨(dú)占線程造成卡頓的解決方案
這篇文章主要介紹了javascript引擎長時(shí)間獨(dú)占線程造成卡頓的解決方案,需要的朋友可以參考下2014-12-12JS實(shí)現(xiàn)對json對象排序并刪除id相同項(xiàng)功能示例
這篇文章主要介紹了JS實(shí)現(xiàn)對json對象排序并刪除id相同項(xiàng)功能,涉及javascript針對json格式數(shù)據(jù)的遍歷、運(yùn)算、判斷、添加、刪除等相關(guān)操作技巧,需要的朋友可以參考下2018-04-04使用RN Animated做一個(gè)“添加購物車”動(dòng)畫的方法
這篇文章主要介紹了使用RN Animated做一個(gè)“添加購物車”動(dòng)畫的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-09-09微信小程序用戶授權(quán)環(huán)節(jié)實(shí)現(xiàn)過程
這篇文章主要介紹了微信小程序用戶授權(quán)環(huán)節(jié)實(shí)現(xiàn)過程,在商城項(xiàng)目中,我們需要對部分的頁面,進(jìn)行一個(gè)授權(quán)的判別,例如購物車,及個(gè)人中心,需要完成用戶信息的授權(quán)后,獲取到相關(guān)信息2023-01-01解決JS內(nèi)存泄露之js對象和dom對象互相引用問題
這篇文章主要介紹了解決JS內(nèi)存泄露之js對象和dom對象互相引用問題,需要的朋友可以參考下2017-06-06