热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

webpack优化以及node版本

最近做的这个项目webpack用的是1.X的版本,真的非常多的坑,然后最近在疯狂的做优化:事情的起因是每次我npmrundev的时侯都需要

最近做的这个项目webpack用的是1.X的版本,真的非常多的坑,然后最近在疯狂的做优化:

事情的起因是每次我npm run dev的时侯都需要5分钟+,这个速度真的是难以忍受,然后就尝试去做项目的优化。

首先引入了webpack-bundle-analyzer来分析项目的包大小,于是发现有些文件真的大到难以忍受。先讲下这个插件怎么用:

1.先安装:

我平时都喜欢用yarn add来安装确实比npm i 的速度快

npm install --save-dev webpack-bundle-analyzer

2.在webpack中配置:

plugins: [
new BundleAnalyzerPlugin(),
]

3.在package.json的script中加入:

"analyz": "NODE_ENV=production npm_config_report=true npm run build"  

但是这里不能直接NODE_ENV,需要用到另一个插件:cross-env

这里我就不赘述了,可以百度看下如何使用cross-env

然后查看完自己的项目之后发现可以提取有些垃圾代码:

这就是analyz之后的结果,发现好多页面都引入了: 

import kn from 'knockout'

 其实项目的入口是在全局引入了knockout的,所以在每个页面引入的knockout是不必要的。

优化之后:

除此之外webpack还有一个优化神器,那就是:CommonsChunkPlugin

CommonsChunkPlugin是一个选择加入功能,可以创建一个单独的文件(块),由多个入口点之间共享的公共模块组成。
通过将通用模块与包分离,生成的块化文件最初可以加载一次,并存储在高速缓存中供以后使用。带来页面速度上的提升,浏览器将公共代码从缓存中取出来,不是每次访问一个新页面,再去加载一个更大的文件。
基本配置如下:

new webpack.optimize.CommonsChunkPlugin({name: "vendor"})

 

最后&#xff0c;你发现你的npm run dev还是很慢的话&#xff0c;你可以考虑试着降低node的版本了&#xff0c;我降低版本之后发现速度差不多是<2分钟了&#xff0c;之前node是10的版本&#xff0c;后面node的版本降到了8就改善了

 

转:https://www.cnblogs.com/yuan233/p/10720882.html



推荐阅读
  • Node.js详细安装及环境配置
    1、下载安装根据自己电脑系统及位数选择,我这里选择windows64位.msi格式安装包(官网:https:odejs.orgzh-cndownload).msi和.zip格式区别 ... [详细]
  • npminstall-Dbabelcorebabelpreset-envbabelplugin-transform-runtimebabelpolyfillbabel-loader ... [详细]
  • Node.js学习笔记(一)package.json及cnpm
    本文介绍了Node.js中包的概念,以及如何使用包来统一管理具有相互依赖关系的模块。同时还介绍了NPM(Node Package Manager)的基本介绍和使用方法,以及如何通过NPM下载第三方模块。 ... [详细]
  • 本文介绍了JavaScript进化到TypeScript的历史和背景,解释了TypeScript相对于JavaScript的优势和特点。作者分享了自己对TypeScript的观察和认识,并提到了在项目开发中使用TypeScript的好处。最后,作者表示对TypeScript进行尝试和探索的态度。 ... [详细]
  • React 小白初入门
    推荐学习:React官方文档:https:react.docschina.orgReact菜鸟教程:https:www.runoob.c ... [详细]
  • ReactJSUIAnt设计空组件原文:https://w ... [详细]
  • 先下载nodejs针对windows安装安装就行。自定义安装在对应的文件夹就行安装完之后需要在电脑的环境变量里面添加两个路径通过cmd可以查看自己node的版本号最后通过运行npm ... [详细]
  • Vue cli2.0 项目中使用Monaco Editor编辑器
    monaco-editor是微软出的一条开源web在线编辑器支持多种语言,代码高亮,代码提示等功能,与VisualStudioCode功能几乎相同。在项目中可能会用带代码编 ... [详细]
  • .babelrc是用来设置转码规则和插件的,这种文件在window上无法直接创建,也无法在HBuilder中创建,甚至无法查看,但可以在sublimetext中创建、查看并编辑。当 ... [详细]
  • 如何在Vue项目中安装和使用VUX组件?
    vux2模板fork自webpack模板,基本和官方同步。1、默认为webpack2模板npminstallvue-cli-g如果还没安装vueinitairyla ... [详细]
  • 1.修改babelrc文件{presets:[es2015,react,stage-1],plugins:[transform-decorators-lega ... [详细]
  • 使用 MobX 开发 React Native 应用 @observer 引用报错
    本文将MobX与ReactNative结合,编写一个简单的列表客户端。这是学习使用MobX和ReactNative的一个不错的起点。查看最终的代码库,点 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 前言折腾了一段时间hadoop的部署管理,写下此系列博客记录一下。为了避免各位做部署这种重复性的劳动,我已经把部署的步骤写成脚本,各位只需要按着本文把脚本执行完,整个环境基本就部署 ... [详细]
author-avatar
醉情YJY_414
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有