1
ChefIsAwesome 2017-04-17 07:08:04 +08:00 via Android 1
npm 上的应该是编译后的。因为一般人用 babel 的时候都会过滤掉 node_module 里的文件。
tree shaking 确实有用。发到 npm 上的东西在用 babel 编译的时候记得排除 es6 modulel 。 moment 这种是依赖,不应该也不会被编译。 整个过程大概是这样:你的 src 文件是 es6 写的。你写个脚本,把 src 还有根目录底下的 package.json 复制到 dist 文件夹里头。然后对 dist 里头你要发布的所有文件做 babel 。最后在 dist 里头做 npm publish 。 |
2
airyland 2017-04-17 07:29:06 +08:00 1
说一下非主流 UI 库 VUX 的方式:
1. 分发的是 .vue 文件,早期需要在 webpack 配置 babel 编译源码的 js 文件,现在 vux-loader 直接做了这一步。 2. 如果已经是使用生成的 umd 文件来分发,项目再次引入 moment 当然会再被打包一次 3. 组件是组件, tree shaking 在这里没多少作用。引用要用到的一两个组件和引入了全部组件文件体积当然是不一样的,况且组件会逐渐增加,如果你是 PC 端全部引入大概没大多问题,移动端必须按需加载。 按需加载一般是要求单独根据路径来引用,一些库是使用 babel 插件来实现。 VUX 使用的是配套工具 vux-loader 来实现。 umd 打包会导致无法进行代码复用,一个依赖库会被不同组件分别打包进去,体积偏大。 |
3
murmur 2017-04-17 08:03:37 +08:00
moment.js 你注意点哦,这东西坑的很,默认会打包所有的语言文件徒增 150k 的大小
|
4
otakustay 2017-04-17 13:03:00 +08:00
1. both
2. 既然上面一个问题是 both 了,选择权就在使用者,你不用管 3. no |