vue单页面应用优化-分离静态js库,利用webpack的externals配置

因为webpack的默认打包机制会将我们项目中通过npm引入的js库全部打包成一个vendor.js文件里面
毫无疑问这个文件将会非常之大,不利于浏览器加载和浏览器的缓存,因为每次我们更新项目,都会生成一个新的vendor.js文件,浏览器没有缓存,每次都重新加载新的,会导致首次加载极慢
其实像vue.js 、vuex.js 、vue-router.js 这些外部库,基本不会变的,如果将它们独立出来单独加载就能利于浏览器的缓存机制,不用每次都重新加载这些库js,并且大大的减少了打包的vendor.js文件

优化步骤:
1、首先将这些静态库js文件加入到项目的static文件夹里面,例如下面的vue.js文件:


2、在项目根目录的index.html入口模板文件中采用传统的<script></script>
方式引入js库


3、修改build\webpack.base.conf.js 文件,利用externals配置引用库,在module.exports中配置externals


说明一下externals的配置

比如第一个'vue':'Vue' 

key值是:'vue'   (这个值是import from 'vue'时用的名称)

value值是:'Vue' (这个值是通过script方式引入js库后它的全局变量 ,这时vue库的全局变量是首字母大写的 'Vue'

其他同理,element-ui 是import from 'element-ui' 

而通过script方式引入时,它的全局变量名是大写的 'ELEMENT'


4、然后就可以按照以往一样的方式import相应的库了
import Vue from 'vue'
import Router from 'vue-router'
import Vuex from 'vuex'


5、优化后的浏览器加载效果,全部是独立加载各自的js文件,可以利用浏览器的缓存机制






转载于:https://juejin.im/post/5c9303e05188252db5634484

Vue项目中安装和配置File Loader以及Webpack-node-externals主要是为了支持非JavaScript静态资源打包,比如图片、CSS、JSON等,并处理Node.js模块外部引用的问题。以下是具体的步骤: 1. **安装File Loader**: 使用npm(Node Package Manager)全局安装: ``` npm install -D file-loader ``` 或者在Vue项目的`package.json`的`devDependencies`里单独安装: ``` npm install --save-dev file-loader ``` 2. **配置File Loader**: 将File Loader添加到`.vue`文件的`build`或`webpack.config.js`中。在`module.rules`部分添加一个新的规则,示例: ```javascript { test: /\.(png|jpe?g|gif|svg|eot|woff(2)?|ttf|wav|mp3)(\?.*)?$/, use: { loader: 'file-loader', options: { name: '[name].[ext]', outputPath: 'public/assets/images/', // 输出路径 publicPath: '/assets/images/' // 静态资源引用路径 } } } ``` 3. **安装Webpack-D webpack-node-externals ``` 这个插件用于告诉Webpack忽略在生产环境不必要的Node.js核心模块引用。 4. **配置Webpack-node-externals**: 在`config/index.js`或对应的构建配置文件中,将它添加到plugins数组中: ```javascript module.exports = { // ... optimization: { runtimeChunk: 'single' }, externals: ['fs', 'path', '__dirname'], // 添加需要排除的Node.js模块 plugins: [ new webpack.NodeExternals({ whitelist: ['express'] // 可以自定义要排除的具体模块 }) ] // ... }; ``` 注意,以上配置可能会根据你的实际项目结构和需求有所不同。记得在运行`npm run build`或`yarn build`时查看是否有新的警告或错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值