首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何将我的Webpack/Vue代码拆分为一个单独的vendor.js文件并从app.js中删除它?

将Webpack/Vue代码拆分为一个单独的vendor.js文件并从app.js中删除它的方法如下:

  1. 配置Webpack的optimization.splitChunks参数,以将第三方依赖库(如Vue)拆分为一个单独的vendor.js文件。在Webpack配置文件中,添加以下代码:
代码语言:txt
复制
module.exports = {
  // ...
  optimization: {
    splitChunks: {
      cacheGroups: {
        vendor: {
          test: /[\\/]node_modules[\\/]/,
          name: 'vendor',
          chunks: 'all',
        },
      },
    },
  },
};
  1. 在Vue项目的入口文件(通常是main.js)中,将第三方依赖库(如Vue)的引入语句删除或注释掉。例如:
代码语言:txt
复制
// import Vue from 'vue';
// ...
  1. 在Webpack配置文件中,添加插件(如clean-webpack-plugin)以删除生成的vendor.js文件中的注释和空行。在Webpack配置文件中,添加以下代码:
代码语言:txt
复制
const { CleanWebpackPlugin } = require('clean-webpack-plugin');

module.exports = {
  // ...
  plugins: [
    new CleanWebpackPlugin(),
    // ...
  ],
};
  1. 运行Webpack构建命令,生成拆分后的vendor.js文件和更新后的app.js文件。

这样,Webpack/Vue代码就会被拆分为一个单独的vendor.js文件,并从app.js中删除。在项目中使用时,只需引入生成的vendor.js文件即可。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云Webpack部署指南:https://cloud.tencent.com/document/product/1213/44399
  • 腾讯云Vue.js开发指南:https://cloud.tencent.com/document/product/1213/44398
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Vue.js应用性能优化二

Vue.js延迟加载和代码拆分文章,我们了解了代码拆分是什么,如何Webpack一起工作以及如何Vue应用程序中使用延迟加载来使用它。...应用规模增长带来问题 Vue-router是一个库,允许自然地将我Web应用程序拆分为单独页面。每个页面都是与某个特定URL路径关联路由。...所有js代码都被打包到一个文件app.js 您可能已经注意到,根据我们访问路由,我们可能不需要Home.vue或About.vue(依赖lodash)但它们都在相同app.js,无论路由用户是什么...只需将这几行添加到webpack配置,我们就会将公共依赖项分组到一个单独,以便共享它们。再说清楚一些,几个路由页面共享依赖,会单独抽取出来打包,而其他页面不会下载这个共享包。...整个应用有一个全局共享vendor bundle。 ? 在chunks属性,我们只是告诉webpack应该优化哪些代码块。您可能已经猜到了,将此属性设置为all,这意味着应该优化所有代码块。

2K30

前端-手摸手,带你用合理姿势使用webpack4(下)

入口文件依赖文件都被打包进了app.js,那些大于 30kb 第三方包,如:echarts、xlsx、dropzone等都被单独打包成了一个个独立 bundle。...就拿vue-count-to来举例,你可以把共用两次以上组件或者代码单独抽出来打包成一个 bundle,但你不要忘了vue-count-to未压缩情况下就只有 5kb,gizp 压缩完可能只有 1.5kb...比如我有一个管理后台,大部分页面都是表单和 Table,我使用了一个第三方 table 组件,几乎后台每个页面都需要,但它体积也就 15kb,不具备单独标准,它就这样被打包到每个页面的 bundle...chunks 映射关系 list单独app.js里提取出来,因为每一个 chunk id 基本都是基于内容 hash 出来,所以你每次改动都会影响,如果不将它提取出来的话,等于app.js...chunk: 是指代码引用文件(如:js、css、图片等)会根据配置合并为一个或多个包,我们称一个包为 chunk。 module: 是指将代码按照功能拆分,分解成离散功能块。

1.2K30

使用Webpack提升Vue.js应用程序4种方法(翻译)

您可以配置插件以检查依赖项是否来自node_modules文件夹,如果是,则将其输出到单独文件vendor.js: new webpack.optimize.CommonsChunkPlugin({...> Fingerprinting 当构建文件更改时,我们如何破坏浏览器缓存?...该插件可以在捆绑过程自动将对构建文件引用注入到HTML文件。 首先删除对构建文件引用: <!...但是,如果您应用有多个页面,则拆分代码会更有效,因此每个单独页面代码都位于单独文件,并且仅在需要时才加载 Webpack具有一项称为“代码拆分”功能。...require 要从服务器加载异步组件代码,请使用Webpack require语法 这将指示Webpack在构建时将async-component捆绑在一个单独bundle,更好是,Webpack

2.6K20

Webpack异步加载原理及分包策略(深度好文,建议收藏)

也有人称为代码切割,他其实就是将 js 模块给独立导出一个.js 文件,然后使用这个模块时候,再创建一个 script 对象,加入到 document.head 对象,浏览器会自动帮我们发起请求,去请求这个...index.html index.js 由此可见,此时 webpack 把 main.js 依赖两个文件都同时打包到同一个 js 文件,并在 index.html 引入。.../A.js'),把 A.js 分割出去,形成一个 webpack 打包单独 js 文件。...在代码中所有被 import()模块,都将打成一个单独包,放在 chunk 存储目录下。在浏览器运行到这一行代码时,就会自动请求这个资源,实现异步加载。...分包策略 在 webpack 打包过程,经常出现 vendor.jsapp.js 单个文件较大情况,这偏偏又是网页最先加载文件,这就会使得加载时间过长,从而使得白屏时间过长,影响用户体验。

4.2K31

Vue加载优化,速度提高一倍。

前言 之前做一个Vue项目,流程大概是这这样:从公众号进入,由外系统获取用户openid等信息,然后再跳转到项目首页进行加载初始化操作。...可以看到,项目中vendor.js文件最大,为 184.9 KB,该文件Vue打包时候自动生成;通过该方法可以看到哪些 js 是我们没有使用或者可以优化,如果没有使用可以进行删除。...vendor.js文件大小为434 KB,耗时1.26秒。 app.js文件大小144 KB,耗时598毫秒。 一张 png 图片大小347 KB,耗时1.51秒。...把 build/webpack.prod.conf.js文件asset改为filename: ?...app.css 文件大小为 300 KB,耗时887毫秒。 vendor.js文件大小为131 KB,耗时610毫秒。 app.js文件大小30.7 KB,耗时342毫秒。

1.4K20

webpack性能优化(2):splitChunks用法详解

之前写webpack性能优化(0):webpack性能优化概况-优化构建速度》、《webpack性能优化(1):分隔/分包/异步加载+组件与路由懒加载》如果使用vue-cli,默认生成vendor.js...代码分离 | Code Splitting代码分离是 webpack 中最引人注目的特性之一。此特性能够把代码分离到不同 bundle ,然后可以按需加载或并行加载这些文件。...,入口点中import了一个模块,并打印了某些字符串,我们就叫modulemodule被单独拆分成一个bundle,并且这个bundle文件也包含了打印字符串部分我们注意到拆分出来那个 bundle...设置runtimeChunk是将包含chunks 映射关系 list单独app.js里提取出来,因为每一个 chunk id 基本都是基于内容 hash 出来,所以每次改动都会影响,如果不将它提取出来的话...设置runtimeChunk之后,webpack就会生成一个个runtime~xxx.js文件。然后每次更改所谓运行时代码文件时,打包构建时app.jshash值是不会改变

1.5K31

webpack性能优化(2):splitChunks用法详解

之前写webpack性能优化(0):webpack性能优化概况-优化构建速度》、《webpack性能优化(1):分隔/分包/异步加载+组件与路由懒加载》如果使用vue-cli,默认生成vendor.js...代码分离 | Code Splitting代码分离是 webpack 中最引人注目的特性之一。此特性能够把代码分离到不同 bundle ,然后可以按需加载或并行加载这些文件。...,入口点中import了一个模块,并打印了某些字符串,我们就叫modulemodule被单独拆分成一个bundle,并且这个bundle文件也包含了打印字符串部分我们注意到拆分出来那个 bundle...设置runtimeChunk是将包含chunks 映射关系 list单独app.js里提取出来,因为每一个 chunk id 基本都是基于内容 hash 出来,所以每次改动都会影响,如果不将它提取出来的话...设置runtimeChunk之后,webpack就会生成一个个runtime~xxx.js文件。然后每次更改所谓运行时代码文件时,打包构建时app.jshash值是不会改变

1.5K20

webpack4 之 cacheGroups 分包【究极奥义】

结合以上分析图和 test warning,很明显,我们需要思考: Echarts 体积大小不能忽视,如何处理?是首页加载还是异步加载?要按需引入吗? vue.js 等库还能不能再?...虽然这不会是最终结果,但本瓜可以先下一个结论: 配置 cacheGroups,权衡包与并包二者,便是 webpack 分包究极奥义!...我们还应该从打包分析结果去回看我们代码细节,调整业务代码来优化打包结果,或许是最直接有效优化思路之一。包括:如何整合或解耦业务?如何做组件化?组件怎么引?插件怎么引?引多少?.........复用被拆分出去一个 module; 意外收获 代码层面:这样写,user.png 会被单独打成一个包。...然而它们其中有些是可以调整写法,真没必要将几 KB 文件单独打包成一个几 B 文件。 从打包结果去检验代码,也是一种不错优化手段!

1.1K20

【原创】Webpack构建hash优化,vue-cli项目为例

背景: SPAvue应用,采用webpack2构建,打包入口为main.js 输出:main模块打包成app.js,公共lib打包成vendor.js,公共样式打包成app.css,运行时依赖打包成mainfest.js...,路由页面动态加载,输出以ID开头js文件 缓存策略:对所有输出文件加载hash值,服务器加上永久缓存标志,通过hash来判断是否有新文件 改造前hash值改变场景: 1、修改某个页面的业务代码...原因分析: 1、默认情况下webpack模块都是以一个有序数列命名,也就是[0,1,2....]。...4、引入新库(即在Main静态导入模块):仅改变代码app和打包新库vendor发生变化` √ ?...注:最新webpack4api已发生变化,并且不会有此问题。建议在webpack4经生产大规模运用后切换到webpack4

1.8K40

webpack实战——打包优化【

1 vendor配置 首先需要为动态链接库单独创建一个Webpack配置文件,例如:webpack.vendor.config.js,注意要与webpack.config.js区分开来。..."dll": "webpack --config webpack.vendor.config.js" } } 然后执行npm run dll,会发现生成了一个dll目录,里面对应有两个文件vendor.js...在工程webpack配置文件(注意是webpack.config.js,不是vendor配置文件),通过DLLReferencePlugin来获取刚才打包好资源清单,然后在页面添加vendor.js...4 潜在问题 细心小伙伴或许已经发现了,在当前配置中会存在一个问题:当打开manifest.json文件后,可以发现每个模块都会有一个id,其值是按照数字顺序递增,而业务代码在引用vendor模块时也是引用这个数字...下一篇介绍打包优化最后一个环节:死代码检测与去除。 ? 往期推荐 打包优化【上】 代码分片 样式文件分离

86450

「uniapp 如何支持微信小程序环境开发」初探uniapp为此做了哪些努力?

uni-app 是一个使用 Vue.js 开发所有前端应用框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/...因此从uniapp抠出了核心逻辑(做了很多简化工作,为了你能更好理解啊),并写了一个简易demo,来一探究竟。...3. app.js和app.wxss来自哪❓,common/main.js,runime.js,vendor.js又是什么❓ uniapp底层是基于webpack进行构建,我们只需要在调用webpack...另外还有一个有趣点,如被修改后vue-loader也引用了被修改后第三方库如vue-template-compiler等,此时这些模块查找并不会走webpack,而后走node自己模块查找机制...总结 实际上想了解或者实现uniapp如何做到支持构建到小程序环境,涉及到对小程序、webpackvue多个方向熟悉,包含了运行和构建两个大方向。

1K40

前端性能优化篇一:webpack性能优化

DllPlugin 是基于 Windows 动态链接库(dll)思想被创作出来。这个插件会把第三方库单独打包到一个文件,这个文件就是一个单纯依赖库。...用 DllPlugin 处理文件,要分两步走: 基于 dll 专属配置文件,打包 dll 库 基于 webpack.config.js 文件,打包业务代码一个基于 React 简单项目为例,我们...__dirname, }), ], } 编写完成之后,运行这个配置文件,我们 dist 文件夹里会出现这样两个文件: vendor-manifest.json vendor.js...对于没有使用代码。可以自动删除。这样就减少了项目的体积。 举个例子: import { a, b } from '....删掉了没有用到代码。 7 按需加载 像vue 和 react spa应用,首次加载过程,由于初始化要加载很多路由,加载很多组件页面。会导致 首屏时间 非常长。一定程度上会影响到用户体验。

2.1K20

Vue webpack 压缩打包上线 首屏加载时间过长 优化方案

network,发现有两个文件加载时间特别长,一个vendor.js,一个app.js,打包时候,这两个文件也提示文件过大 ?...最终,结合网上前辈们解答,首屏加载时间过长重要有以下几点: 图片,登录页面(打开网站一个页面)静态图片过多也会在首屏中加载出来,消耗时间 Vue代码里面Router没有使用懒加载 使用npm安装第三方库...懒加载 webpack默认将所有js源代码打包成一个js文件,导致JS包会变得非常大,影响页面首次加载速度 按需加载能把不同路由对应组件分割成不同代码块,然后当路由被访问时候才加载对应组件js...如果没有的话,你只要把上面代码复制到 webpack 配置文件 plugins 下即可。 如何方面查看build之后文件大小呢?...我们可以使用另外一个 webpack 插件:webpack-bundle-analyzer ,如何使用呢?

1.7K30

「uniapp 如何支持微信小程序环境开发」配置项简化到可以让你一盔全貌之:loader + plugin

分为 -> .js文件 webpack对于模块拆分,首先想到就是SplitChunksPlugin,否则默认情况下,同步引用模块是不会被拆分出去。...原因见之前系列文章webpack源码分析」模块构建之解析_source获取dependencies 所以就有了这样一个loader,来将.vue文件引用组件形式进行替换。...最后实现了一个插件来输出这些.json文件 逻辑比较简单,不深入分析了,代码在这mp-plugin 全局文件 app.js、app.wxss 这两个文件是手动生成,调用compilation.assets...运行时 到目前为止一直在说构建问题,如何把.vue文件构建成小程序组件形式,但是显然最终运行怎么能离开运行时代码呢?...桥:连接 vue运行时和小程序框架 运行时代码分析还是会单独小节分析,这里只是说如何将运行时模块注入到最终产物

1.8K41

webpack 学习笔记系列06-打包优化

都已经另一个被分割chunk存在,那么直接引用已存在c hunk,不会再重新产生一个 } } } } }; 除 JavaScript...(魔法注释),注意:若 minSize 设置较大,不会单独拆出 vendors~a.js lodash 为同一个 a-lodash.js(魔法注释) all: 推荐,在 initial 基础上尽可能生成复用代码...需要单独为 dll 文件创建一个配置文件,通过 DLLPlugin 插件将第三方依赖打包到 bundle 文件,并生成 manifest.json 文件,在项目的 webpack 配置文件中使用 DllReferencePlugin...// 单独 dll 打包配置文件 webpack.config.dll.js const webpack = require('webpack'); const vendors = ['react'.../manifest.json') // 导入 }) ] }; 注意:打包后 html 不会主动引入 dll vendor.js 文件,需要手动处理。

1.8K201

Vue打包优化之code spliting

而如果我们对所有的代码进行合理拆分,将首屏和非首屏代码进行剥离,将业务代码和基础库代码进行拆分,在需要某段代码时候再加载,下次若再需要用则从缓存读取,一来可以更好地使用浏览器缓存,再者就是可以提高首屏加载速度...下所引用模块进行打包 修改配置如下 entry: { //vendor: ['vue', 'vue-router', 'vuetify', 'axios'], //删除 app: '....可是,这里我们发现vuetify.js和vuetify.css实在太庞大了,导致我们打包代码很大,这里,我们考虑把提取出来,这里为了避免重复打包,需要使用external,并将vue以及vuetify...:'Vue', "vuetify":"Vuetify" } 再重新打包,可以看到vue相关代码已经没有了,目前也只有used-twice-app.js比较大了,app.js缩小了近200kb...总结 可能会有朋友会问,单独vue和vuetify会导致请求数增加,这里我想补充下,我们业务现在已经切换成http2了,由于多路复用,并且加上浏览器缓存,我们分拆出请求数其实也算是控制在合理范畴内

4.1K100

Vue笔记(8)

,我们会使用Vuejs进行开发,而且会以特殊文件来组织Vue组件 所以,下面我们来学习一下如何在我们webpack环境中集成VueJS 现在我们希望在项目中使用Vue,那么必然需要对其有依赖...到webpack.config.js中加上这几条代码即可 现在就可以了 el和template 我们来考虑另外一个问题: 由于不想频繁更改index.html内容,所以将里面的内容删除...另外就是 接下来还要继续抽取 在src文件夹下面创建一个vue文件夹,里面创建一个app.js 导出这一块代码 在main.js引用: run一下就能运行了...,效果就不展示了,因为还可以继续抽到vue里面 现在终于到了使用.vue文件时候 还是在vue文件夹里面,创建一个App.vue文件 下载一个叫'vetur'插件 在.vue文件输入vue...,可以实现我们想要让浏览器自动刷新显示我们修改后结果 不过它是一个单独模块,在webpack中使用要先安装 npm install --save-dev webpack-dev-server

45720

进阶| Vue 2.x + Webpack 3.x + Nodejs 多页面项目框架(下篇)

前端爱好者知识盛宴 导语 这是Vue多页面框架系列文章第二篇,上一篇,我们尝试从webpack-simple原型项目改造为一个多页面的Vue项目。...3、使用什么方式运行打包后两部分代码,并生成最终HTML? 4、怎么注入数据?客户端又怎么获取数据作用于Vue? 5、如何启动项目?热更新还能有效吗?...首先,需要新建一个app和entry文件app.js 原来客户端渲染是直接new Vue(),而这里改为export一个工厂方法,好让后续服务器和客户端分别用各自方式创建。...•plugins中加入VueSSRServerPlugin:这个插件会让文件最后打包为一个json,用于后续运行时读入到Vuevue-server-renderer 再看看客户端修改。...webpack配置也要相应处理: 这里做了几个关键事情: •entry指向客户端打包入口 •利用chunkPlugin生成vendor.js,抽离部分库文件 •生成manifest文件,记录文件

92620

webpack构建优化:bundle体积从3M到400k之路

作为一个为韩国头部厂商提供优质服务网站,接到这种反馈,这不是啪啪打脸吗。 代码是在以前老框架上写(必须坚定把锅甩出去,手动捂脸)。喝杯咖啡镇定下,找找什么问题。...1、祭出神器把Bundle分析利器拿出来:   webpack-bundle-analyzer是一个基于webpack插件,能够用zoomable treemap可视化webpack输出文件大小(Visualize...对比优化前app.js大小1.2M,以及下图单独引入vue.min.js、vue-i18n.js、vue-router.min.js大小,分别为78K、38K、24K。...效果十分明显 image.png c、除了拆分依赖包,另一个重要优化就是压缩代码,这里使用是uglifyjs-webpack-plugin,同样在webpack.app.config.jsplugin...比如UglifyJsPlugin删除生产环境里console.log选项drop_console死活不生效,最后只能通过vue-loaderpreLoader预加载选项,利用strip-loader

4K50

React 基础知识

(下) 这两篇文章讲解,再进行 React 学习 WebPack app 文件夹主要存放着我们项目的代码,static文件夹存放静态资源文件,util文件夹存放工具函数,index.jsx为 React...入口文件,index.tmpl.html为模板文件app.js是我们项目的业务代码vendor.js为第三方依赖包,webpack.config.js为开发时配置文件webpack.production.config.js...为发布时配置文件 在开发过程,我们可以不用考虑系统性能,更多考虑如何增加开发效率,所以我们会把所有的代码,统一打包为bundle.js文件,但若是将项目上线,我们就需要考虑系统加载速度、缓存等等因素...,所以我们会把业务代码和第三方依赖包代码分开打包,分别对应app.jsvendor.js文件,这样做好处是,当我们进行项目的更新时,只需要更新app.js文件即可 因为我是在 Mac OS 环境下进行开发...jsx 语法 React 里面写模板要使用到 jsx 语法,这是几个特点:a. jsx 不能一次性返回零散多个节点,需要使用一个父节点包裹;b.

58840
领券