mip-project / mip

MIT License
11 stars 1 forks source link

暂时弃用 rollup 改用 webpack #18

Closed easonyq closed 6 years ago

easonyq commented 6 years ago

在 MIP 开发初期就使用 rollup 进行开发和构建。但随着开发的深入,我们发现 rollup 有几个(暂时)无法解决的缺点:

  1. rollup 无法对 less 进行 watch。因此开发 less 需要反复重启
  2. rollup 的 vue 插件中使用 less 时,@import 'xxxx' 的路径 必须要从根目录开始计算,而不是当前目录。这个是有悖常规开发习惯的
  3. rollup 的 vue 插件对 Windows 有支持问题,虽然他们立刻给出了 PR 进行修复,但今早发布的 4.1.3 版本竟然直接就不能跑了(包括非 Windows)。我还提了个 issue

基于以上三点(尤其是最后一点),我还是打算改成 webpack。但除了编写一份 webpack 配置之外,对源代码也有需要修改的地方,这里进行记录:

  1. 代码中的 '__VERSION__' 需要改成 __VERSION__。(去掉引号)

    rollup 中使用的是 rollup-plugin-replace 进行替换,与之对应的是 webpack 的 webpack.DefinePlugin。但 有一个差别,即 webpack 需要替换的内容不应该留字符串,而应该留原始代码,因此这里必须对代码进行修改。

  2. vue 中 less 的引用路径需要基于当前目录,而不是根目录。这原本是为了解决 rollup 的一个问题,现在只是恢复正常状态。

rollup 的配置暂时还保留着,命令修改为 npm run dev:rollupDistnpm run dev:rollupServer,而 npm run dev 改为 webpack 的命令,构建 JS 和启动服务器合并在一起。

所有改动在 webpack 分支上。

easonyq commented 6 years ago

已经合并到 master 分支。

后续万一需要还原,恢复上述两处代码改动,否则 rollup 可能会报错。