Webpack插件

一,项目启动提速:缓存

1, speed-measure-webpack-plugin 插件分析webpack启动速度

2局部缓存:安装 cache-loader 缓存插件loader,如:(css-loader 、vue之前添加 cache-loader,)

一些性能开销较大的loader前面添加cache-loader,将结果缓存在磁盘中减少编译时间。在webpack.config.js中配置rules

module.exports = {

  module: {

    rules: [

      {

        test: /\.js$/,

        use: [

          'cache-loader',

          'babel-loader'

        ],

        include: path.resolve('src')

      }

    ]

  }

}

3全部缓存:安装 hard-source-webpack-plugin。只要webpack配置不变,通通缓存。

二,打包体积优化:

webpack-bundle-analyser 插件分析打包项目里各个地方的大小,配置后,重启运行打包命令,看到分析结果。

一: vue.config.js中配置

1,productionSourceMap:false

2,去除首页预加载:preload,prefetch

删除 preload: config.plugins.delete('preload') //用于标记页面加载后即将用到的资源,浏览器将在主体渲染前加载preload标记文件

删除 prefetch: config.plugins.delete('prefetch') //使用场景:设置false,对流量不必要的损耗。设置为true会一次加载十几个路由。

3,图片压缩 image-webpack-loader 安装插件 //在chainWebpack中新增以下代码,大概是config.module.rule('images')..loader('image-webpack-loader')

4,代码压缩 uglifyjs-webpack-plugin 插件安装 //在configureWebpack中加入,  uglify(丑陋,混淆)

2,路由懒加载:按需加载

使用 resolve 的异步加载机制,用require代替import。

或 vue-router 官网方法

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编写 Webpack 插件的步骤如下: 1. 创建一个 Node.js 模块,其中包含一个插件类。这个插件类需要实现 `apply` 方法,该方法会在 Webpack 打包过程中被调用。 2. 在 `apply` 方法中注册一个或多个 Webpack 生命周期钩子。Webpack 生命周期钩子是 Webpack 打包过程中的不同阶段,其中包括 `compilation`、`emit`、`done` 等。 3. 在钩子中编写插件的逻辑。例如,在 `compilation` 钩子中可以访问 Webpack 的编译对象和编译器,可以修改编译对象和编译器的行为。 4. 在插件类中定义一个可选的选项对象,用于配置插件的行为。这些选项可以通过 Webpack 配置文件中的插件选项进行传递。 下面是一个简单的 Webpack 插件的示例代码: ```javascript class HelloWorldPlugin { constructor(options) { this.options = options; } apply(compiler) { compiler.hooks.done.tap('HelloWorldPlugin', () => { console.log(`Hello, ${this.options.name}!`); }); } } module.exports = HelloWorldPlugin; ``` 在这个示例中,我们定义了一个 `HelloWorldPlugin` 类,它接受一个选项对象作为参数。在插件的 `apply` 方法中,我们注册了 `done` 钩子,并在钩子中输出一条简单的消息。 要使用这个插件,我们可以在 Webpack 配置文件中进行如下配置: ```javascript const HelloWorldPlugin = require('./HelloWorldPlugin'); module.exports = { // ... plugins: [ new HelloWorldPlugin({ name: 'World' }) ] }; ``` 在这个配置中,我们将 `HelloWorldPlugin` 插件实例传递给了 Webpack 的 `plugins` 选项。在运行 Webpack 时,插件会在 `done` 钩子中输出一条消息,例如: ``` Hello, World! ``` 除了 `done` 钩子,Webpack 还提供了很多其他的钩子,可以用于在不同的打包阶段进行操作。通过注册这些钩子,我们可以编写各种不同的 Webpack 插件,以满足不同的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值