wynnyo
wynnyo
  • 发布:2021-01-06 11:49
  • 更新:2021-01-06 12:36
  • 阅读:860

在cli模式下, 执行dev:app-plus后, 在 vue.config.js 添加plugin来监听 compiler.hooks.done, 但是监听触发了2次

分类:uni-app

目的: 在 --watch, 希望 编译完代码 通过回调来处理一下事(编译完所有代码, 只触发一次回调)
实现:

  1. 在根目录下添加 vue.config.js, 代码如下

    class CompilerCodeReloadPlugin {  
    constructor(options) {  
        this.options = options  
    }  
    apply(compiler) {  
        if (compiler.hooks && compiler.hooks.done) {  
            // 一般约定tab里的第一个字符串与插件名相同  
            compiler.hooks.done.tap('CompilerCodeReloadPlugin', stats => {  
                console.log('time: ' + new Date().toLocaleTimeString())  
    
                // eslint-disable-next-line @typescript-eslint/no-var-requires  
                const fs = require('fs')  
    
                const fileName = `${stats.hash}.txt`  
                console.log(fileName)  
    
                fs.writeFile(fileName, stats, function (err) {  
                    if (err) {  
                        return console.error(err)  
                    }  
                    console.log('数据写入成功!')  
                })  
            })  
        }  
         }  
      }  
    
     const plugins = []  
     const isDev = process.env.NODE_ENV === 'development'  
     const isApp = process.env.UNI_PLATFORM === 'app-plus'  
     if (isDev && isApp) {  
         plugins.push(new CompilerCodeReloadPlugin({}))  
    }  
    
    module.exports = {  
    configureWebpack: {  
        plugins  
    }  
    }

    2.运行如下


3.输入文件如下
6fe66ee853d9507def17.txt

Hash: 6fe66ee853d9507def17  
Version: webpack 4.44.2  
Time: 25924ms  
Built at: 2021-01-06 11:43:00  
                                 Asset       Size       Chunks                    Chunk Names  
../.automator/app-plus/.automator.json    0 bytes               [emitted]           
             __uniappchooselocation.js   32.8 KiB               [emitted]           
                        __uniappes6.js   51.4 KiB               [emitted]           
               __uniappopenlocation.js   22.8 KiB               [emitted]           
                     __uniapppicker.js   27.6 KiB               [emitted]           
                      __uniappquill.js    211 KiB               [emitted]           
           __uniappquillimageresize.js   23.9 KiB               [emitted]           
                       __uniappscan.js   18.4 KiB               [emitted]           
                   __uniappsuccess.png   1.97 KiB               [emitted]           
                     __uniappview.html  811 bytes               [emitted]           
                 app-config-service.js   2.15 KiB               [emitted]           
                         app-config.js   6.12 KiB   app-config  [emitted]         app-config  
                        app-service.js   6.45 MiB  app-service  [emitted]  [big]  app-service  
                         manifest.json   2.49 KiB               [emitted]           
                static/img/loginBg.png    108 KiB               [emitted]           
                       static/logo.png   3.93 KiB               [emitted]           
                              view.css   54.6 KiB               [emitted]           
                       view.umd.min.js    295 KiB               [emitted]  [big]    
Entrypoint app-service [big] = app-config.js app-service.js  
  [0] ./src/main.ts 520 bytes {app-service} [built]  
  [1] ./src/pages.json 916 bytes {app-service} [built]  
  [2] ./src/pages/main/main.vue?mpType=page 647 bytes {app-service} [built]  
 [10] ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js 3.3 KiB {app-service} [built]  
 [15] external "Vue" 42 bytes {app-service} [built]  
 [20] ./src/pages/login/login.vue?mpType=page 652 bytes {app-service} [built]  
 [55] ./src/pages/index/index.vue?mpType=page 652 bytes {app-service} [built]  
 [70] ./src/App.vue 538 bytes {app-service} [built]  
 [71] ./src/App.vue?vue&type=script&lang=ts& 890 bytes {app-service} [built]  
 [73] ./src/store/index.ts 1.11 KiB {app-service} [built]  
 [74] ./node_modules/vuex/dist/vuex.esm.js 36.4 KiB {app-service} [built]  
 [76] ./src/store/getters.ts 464 bytes {app-service} [built]  
 [77] ./src/store/modules sync \.[jt]s$ 174 bytes {app-service} [built]  
[115] ./node_modules/uview-ui/index.js 4.42 KiB {app-service} [built]  
[116] ./node_modules/uview-ui/libs/mixin/mixin.js 2.28 KiB {app-service} [built]  
    + 126 hidden modules

6913bd53ae92b3dbb2f0.txt

Hash: 6913bd53ae92b3dbb2f0  
Version: webpack 4.44.2  
Time: 26531ms  
Built at: 2021-01-06 11:43:00  
                                 Asset     Size    Chunks                    Chunk Names  
../.automator/app-plus/.automator.json  0 bytes            [emitted]           
                           app-view.js  488 KiB  app-view  [emitted]  [big]  app-view  
Entrypoint app-view [big] = app-view.js  
 [0] ./src/main.ts 469 bytes {app-view} [built]  
 [1] ./src/pages.json?{"type":"view"} 1.13 KiB {app-view} [built]  
 [2] ./src/pages/main/main.vue?mpType=page 647 bytes {app-view} [built]  
 [3] ./src/pages/main/main.vue?vue&type=template&id=a557d614&mpType=page 704 bytes {app-view} [built]  
[14] ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader/lib/addStylesClient.js 7.23 KiB {app-view} [built]  
[16] ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js 3.3 KiB {app-view} [built]  
[17] ./src/pages/main/main.vue?vue&type=script&lang=ts&mpType=page 1.34 KiB {app-view} [built]  
[19] ./src/pages/login/login.vue?mpType=page 730 bytes {app-view} [built]  
[20] ./src/pages/login/login.vue?vue&type=template&id=5b26a3ac&mpType=page 705 bytes {app-view} [built]  
[62] ./src/pages/login/login.vue?vue&type=script&lang=ts&mpType=page 1.34 KiB {app-view} [built]  
[64] ./src/pages/login/login.vue?vue&type=style&index=0&lang=scss&mpType=page 1.79 KiB {app-view} [built]  
[67] ./src/pages/index/index.vue?mpType=page 730 bytes {app-view} [built]  
[68] ./src/pages/index/index.vue?vue&type=template&id=2be84a3c&mpType=page 705 bytes {app-view} [built]  
[91] ./src/App.vue?vue&type=style&index=0&lang=scss& 1.66 KiB {app-view} [built]  
[92] ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader??ref--8-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-2!./node_modules/postcss-loader/src??ref--8-oneOf-1-3!./node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-5!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./src/App.vue?vue&type=style&index=0&lang=scss& 2.98 KiB {app-view} [built]  
    + 79 hidden modules
2021-01-06 11:49 负责人:无 分享
已邀请:
[已删除]

[已删除]

承接H5、小程序、APP等外包:

  1. 经验丰富,做过多种类型项目,有案例可看;
  2. 整个项目外包可以找我(小团队接单,面向客户、产品);
  3. 只需要前端部分也可以找我(个人接单,面向服务端合作伙伴);
  4. wechat(13070273424);

该问题目前已经被锁定, 无法添加新回复