xiaweiss / vite-plugin-ali-oss

Upload the production files bundled in the project to Ali OSS, except for html
MIT License
31 stars 10 forks source link

Optimize asynchronous code #8

Closed hex-ci closed 1 year ago

hex-ci commented 1 year ago
  1. 优化 closeBundle 钩子在异步情况下的行为
  2. glob.sync 无需使用 await
xiaweiss commented 1 year ago

好的,谢谢贡献。我会测试一下

hex-ci commented 1 year ago

看着改动很多,其实我主要是增加了:

 closeBundle: {
   sequential: true,
   order: 'post',
   async handler() {
   }
}

rollup 支持这种写法,可以防止异步时序混乱,在我的项目里,有两个 vite build 方法调用,如果不这么处理,第二个 build 会跟第一个 build 顺序不正常

xiaweiss commented 1 year ago

测试了一下 vite 4 正常的😊 在 vite 2、vite 3 中 closeBundle 只接收函数语法,会报错 Error: Error running plugin hook closeBundle for vite-plugin-ali-oss, expected a function hook.

稍晚一点我看看怎么兼容旧版本

hex-ci commented 1 year ago

了解,看来是跟底层 rollup 版本有关系,我这边确实只使用 vite 4 😊

xiaweiss commented 1 year ago

粗看了一下是 rollup 2 晚期的版本加上的 feature。rollup 3 和 vite 4 肯定是支持的。

我分别测试了 node 14.18.2、node 16.16.0。 process.env 环境变量中 npm_package_devDependencies_vite 可以知道 vite 版本。

你看是否有时间改进下代码呢?谢谢

hex-ci commented 1 year ago

OK,没问题,找时间我更新下代码 :)

xiaweiss commented 1 year ago

计划不做兼容了,直接升级一个大版本,只支持 vite 4 #11

xiaweiss commented 8 months ago

看着改动很多,其实我主要是增加了:

 closeBundle: {
   sequential: true,
   order: 'post',
   async handler() {
   }
}

rollup 支持这种写法,可以防止异步时序混乱,在我的项目里,有两个 vite build 方法调用,如果不这么处理,第二个 build 会跟第一个 build 顺序不正常

@hex-ci 已发布 v2.0.0 版本,只支持了 vite 5、ts、并且带上了上述的改动