经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » webpack » 查看文章
使用webpack4编译并压缩ES6代码的方法示例
来源:jb51  时间:2019/4/25 8:37:04  对本文有异议

前段时间第一次接触了layabox游戏引擎做了一个项目,由于ES6相当好用,所以在项目中使用了很多的ES6语法,但是在发布的时候发现该引擎无法压缩ES6的代码,而不进行压缩的话则代码体积比较大

然后其实该引擎会将自己写的代码打包在一个js文件中,所以也就只有一个js文件是没有压缩的,所以我就想到了自己使用webpack单独对这个文件进行压缩,并将ES6语法编译成ES5,做低版本浏览器的兼容。

第一步安装webpack

1) 全局安装webpack4

  1. npm install webpack -g

创建一个文件夹(webpack4-babel-uglify),初始化项目

  1. cd webpack4-babel-uglify
  2. npm init -y
  3. npm install webpack webpack-cli --save-dev

安装编译ES6的依赖插件

  1. npm install babel-core babel-loader@7 babel-plugin-transform-runtime babel-preset-env --save-dev
  2. npm install babel-polyfill babel-runtime --save

在根目录下创建src目录,将需要编译压缩的js放在src目录下

  1. mkdir src

配置webpack.config.js

  1. module.exports = {
  2. mode:'development',
  3. entry: {
  4. app: [
  5. "babel-polyfill",
  6. "./src/index.js" //需要压缩的js,目前只支持单个文件一个一个压缩 = =!
  7. ],
  8. },
  9. output: {
  10. path: path.resolve(__dirname, 'dist'), //输出目录
  11. filename: 'index.js' //输出文件名称,建议与源文件同名
  12. },
  13. module: {
  14. rules: [{
  15. test: /\.js$/,
  16. exclude: /(node_modules)/,
  17. use: {
  18. loader: "babel-loader"
  19. }
  20. }]
  21. }
  22. };

在根目录下新建.babel文件,设置babel相关配置

  1. {
  2. "presets": [
  3. [
  4. "env",
  5. {
  6. "targets": {
  7. "browsers": [ //浏览器版本
  8. "> 1%",
  9. "last 2 versions",
  10. "not ie <= 8",
  11. "iOS >= 6",
  12. "safari >= 6",
  13. "Firefox >= 20",
  14. "Android > 4",
  15. "android >= 4.4"
  16. ]
  17. }
  18. }
  19. ]
  20. ],
  21. "plugins": ["transform-runtime"]
  22. }

修改package.json中的打包命令

  1. "scripts": {
  2. ...
  3. "build": "webpack" //新增这条命令
  4. }
  5.  

将需要压缩编译的js文件放入src下,并修改第五步中的文件名,之后执行打包命令

  1. npm run build

至此,压缩编译成功,压缩编译后的文件在dist目录下

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持w3xue。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号