首页   注册   登录
 yyfearth 最近的时间轴更新

yyfearth

  •   V2EX 第 4791 号会员,加入于 2011-01-06 21:30:37 +08:00
    刚刚升级完 macOS 10.12.5 和 iTunes 12.6.1 后 iTunes 打不开了
    macOS  •  yyfearth  •  2017-05-16 15:37:07 PM  •  最后回复来自 msn1983aa
    10
    OS X El Capitan Update 10.11.6 is available
    macOS  •  yyfearth  •  2016-07-24 21:48:20 PM  •  最后回复来自 kekeones
    17
    貌似只要 Win10 升级成功后的电脑 全新安装 联网自动激活
    Windows  •  yyfearth  •  2015-08-02 10:02:02 AM  •  最后回复来自 echoflying
    8
    朋友支付宝转账弄错转给别人了怎么办
    问与答  •  yyfearth  •  2014-11-20 10:06:33 AM  •  最后回复来自 yyfearth
    53
    有没有人和我一样用 Yosemite+Bartender 切换屏幕非常的卡?
    macOS  •  yyfearth  •  2014-10-20 13:39:44 PM  •  最后回复来自 SoloCompany
    12
    apple.com 拍扁了
    Apple  •  yyfearth  •  2014-09-10 16:12:29 PM  •  最后回复来自 GPU
    7
    果然和之前泄露的 iPhone 6 一模一样啊
    iPhone  •  yyfearth  •  2014-09-10 01:23:18 AM  •  最后回复来自 yyfearth
    2
    今天的 Doodle 太现实了 www.google.com
    分享发现  •  yyfearth  •  2014-06-24 14:45:05 PM  •  最后回复来自 baichi
    5
    Amazon Fire Phone 出来了
    分享发现  •  yyfearth  •  2014-06-23 16:22:38 PM  •  最后回复来自 Luzifer
    25
    yyfearth 最近回复了
    解决办法很简单啊 为什么要跳过验证 直接安装证书就好了
    不想验证用 ws 就好了啊 为啥还要用 wss
    另外 我之所以最后选择第一种方法的主要原因 是因为方便开发和 debug
    因为在开发项目的时候 经常要对 npm 包里面的组件进行修改 和 debug
    导出 bundle 虽然可以用 source map 来 debug 但是没办法直接修改代码 立即 debug
    必须 修改组件代码 -> 打包发布 -> 主项目 npm i 新版本 -> debug -> 修改组件代码 -> ...
    非常耗时和浪费精力

    改用直接使用 jsx 源代码 然后 npm link 或者 yarn workspace
    一切就和没有 npm 包组件化一样方便了
    这里 webpack 坑比较多 我现在都是不用打包的组件 直接引用源代码 基本上就是你第一种方法

    导出 bundle 其实也可以 但是你 external react 是不够的 要 external 所有的 依赖 除非你 100% 确定这个依赖是你这个组件独有的
    external 所有依赖后 bundle 文件就比较小了 而且不用担心 因为整个项目的 webpack 会把依赖打包进去
    否则同一个依赖 如果其他地方有用到 会被打包多次 造成文件非常大

    另外如果项目的多个组件用了不同版本的依赖 多个版本会被打包起来 导致最终 bundle 非常大
    最容易碰到的例子就是 lodash 和 moment 两个库 本身就挺大的 加上不同组件及其依赖使用了不同版本或者不同发布方式的版本
    比如 lodash 有 cjs 版本 es 版本 模块化的 cjs 版本 模块独立的发布的 cjs 版本 而且每种还可能有不同的 version 我之前就遇到过一个项目里面 lodash 就 4-5 个不同的拷贝被打包 每个 10k - 90k 不等
    然后是 moment 的 locale 需要在打包的时候排除 否则非常大
    这个可以通过修改 webpack 的配置来统一版本

    我接触过的一个项目 一开始每个组件自己 bundle 然后项目再 bundle 结果各种重复打包 一个简单的 webapp 可以到 10M 的 JS bundle
    通过各种办法 在没有减少任何功能 组件 和 依赖的情况下 减少到 250K JS + 100K CSS + 80K 字体文件
    13 天前
    回复了 ytlan0201 创建的主题 问与答 mac 快速拷贝文件到一个指定目录
    @xuuuu @littleylv APFS 下 CP 没有 复制粘贴快
    复制粘贴不管文件大小 只要是同一个分区 都是 毫秒完成 而且占用空间也不增加
    而且还不是 symlink 或者 hardlink 虽然实际上相当于 hardlink
    另外其实还有一个好处就是 因为 node_modules 独立
    所以可以直接修改依赖而不影响其他项目
    尤其是在 debug 的时候 发现依赖的包里面有问题
    甚至可以在 npm postinstall 里面直接 patch 依赖的包
    @yuann72 你说的当然可以 但是问题就出在 “检查下所有项目的 package.json ”
    也就是说 要么在 cleanup 的时候整个系统寻找 package.json
    要么在 install 的时候需要记录每一个 package.json 存在的路径
    都不是一件容易而且有效率的办法

    否则 你在做清理的时候 你没办法知道有没有其他项目在使用你想要清理的包
    这样一来 就意味着 所有 node 的项目就不是 portable 的 而且也不能随便移动位置和直接删除

    现在 node_modules 最大的好处就是 node 项目大部分情况是 portable 的
    只要 OS 兼容 Node 版本 兼容 你可以随时挪动位置 或者 删除 而且不影响其他项目
    另外 如果你一个项目的包弄糟了 只需要删掉 node_modules 重来就好

    我觉得唯一的问题 不是 node_modules 太大 而是文件太多 目录太复杂
    我觉得可以学其他的语言把文件打包一下 比如 jar war phar 这些 zip 一下
    而且由于有可能会有不少重复文件 去重再压缩估计会小不少
    然后在运行时按需求解压 因为很多时候 并不是所有文件都有用到
    而且现在的机器性能 解压缩 zip 的时间基本上可以忽略 搞不好从 IO 角度
    从 zip 读取可能比加载一大堆文件还要快

    这个现在可能不是很必要 但是以后有 webasm 了 打包一下其实可以考虑的
    @wlwood @janxin @maichael 其实可以的 多个项目其实可以共享全部或者部分 node_modules
    node 会自动向上层目录寻找 所以如果有公共的依赖 而且版本一致 可以提取到上层目录的 node_modules 实现共享
    或者 如果你这些项目的依赖完全一致 可以把其中一个 node_modules 放到上层目录 然后把其他的删掉 或者 symlink
    如果你觉得太麻烦 有工具会自动帮你弄:yarn workspace
    它会自动解决多个项目的相互依赖 同时提取公共的部分到同一个 node_modules
    其他的项目会 symlink 到这个 node_modules 里面的依赖

    @chenstack 不一定要 symlink 其实 node 会自动往上层目录找 另外 yarn workspace 最适合这种情况 会自动 symlink

    @beginor 放全局目录也不一定是好事 如果你项目多 全局目录会非常大
    而且 如果你要删除一些项目的时候 全局目录就没办法清理 只会越来越大 而且你还不敢随便删除

    @wlwood 其实你说的不完全正确 npm 有 cache 的 如果有相同的依赖不会重复下载 但是由于每个项目是独立的 node_modules 自然会有独立的拷贝
    但是我觉得从部署的角度而言 独立 node_modules 其实比较方便和干净
    你只要把项目连同 node_modules 一起打包和拷贝 只要 OS 和 Node 相同 就可以直接跑起来
    而且删除的时候 也很干净 不会在 global 留下不再需要的包

    另外同一个项目下面 如果版本不同 NPM 倾向保留多个版本 这个是 node 社区的问题
    不同版本(一般除了_._.x 修正版本)之间往往不兼容 而且也有可能会有包锁定依赖版本
    NPM 现在的方法 其实是比较省事的 如果要 merge 和 flatten 反而会造成很多问题
    目前新版本的 NPM 和 Yarn 就会做一些 merge 和 flatten 结果每次更新依赖的时候 会造成一些问题
    32 天前
    回复了 SingeeKing 创建的主题 Google Google 一家都吃内存吗
    自然 现在开发机器没有 16G 啥都跑不起来
    一两个 IDE + 一堆浏览器 8G 就要爆了
    更不用说开虚拟机或者 Docker

    当然 如果是远程桌面 就无所谓了
    但是开发用的服务器内存就更多了
    至少得都是 128G 起吧 CPU 估计也得 4x16 core
    会不会因为你 iPhone 不信任这台 Mac
    如果不信任的话 是充不了电的
    46 天前
    回复了 wilsondu 创建的主题 Node.js 使用 Promise,无法执行 all()后的 then()
    楼上开玩笑呢 Promise.all([...]) 返回的当然是一个 promise 当然有 then 方法
    是 then 里面的 values 是一个数组 是每个 promise 的结果
    async/await 完全是 promise 的语法糖 完全等价的
    用 async/await 还是 promise 纯粹是怎么写的选择 效果是一样的

    LZ 的问题是 谁叫你把 reject 给注释掉了 你如果换成 resolve 我也就不追究了
    你直接 return 是什么意思?也就是说一旦 err 了 这个 Promise 就永远 pending 它的 then 永远不会执行
    所以你再用 Promise.all 只要里面又一个 err 那么你的 then 永远不会执行
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   2760 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 24ms · UTC 09:46 · PVG 17:46 · LAX 02:46 · JFK 05:46
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1