前端上手M1芯片Mac开发测评
- 我之前的电脑:15年Mac pro,15寸 16G 256G配置
- 现在电脑 M1芯片 13.3寸 16G 256G配置
- 先说上手后的体验
体验
- 相对于老款来说,整体科技感会更好,可能因为我这次买的是深灰色
- 整体流畅度差不多,不过发热和续航能力强了很多,重度使用了8个小时,还有50%电量
- 反应灵敏,键盘舒适。相对于老款的13寸蝴蝶键盘提升很大,同事摸了下键盘就下单了。(它的是蝴蝶键盘,但是我的不是)
- 日常使用、开发软件基本兼容,除了极个别的使用起来不如
x86
的体验好(例如easyconnect
,就时好时不好的). - 如果你的Mac还能用,不是特别差的,不建议你更换,因为目前如果你重度的使用起来,一些环境、工具软件可能还是会遇到一些问题。好消息是Node.js和Electron都是没问题的了现在,相信明年是可以彻底解决那些兼容性问题,包括现在Arm的MAC可以运行win10
- M1运行win10地址:
https://forums.macrumors.com/threads/success-virtualize-windows-10-for-arm-on-m1-with-alexander-grafs-qemu-hypervisor-patch.2272354/
像docker和react-native,flutter这些我目前暂时就不想再去碰他们了,不在本次测评范围内,就说日常开发吧.
上手安装环境
- 前端拿到一台电脑/服务器,第一件事是什么?当然应该先装
nvm
,Node.js
是前端之源,没有它就没有工程化环境.大部分项目就跑不起来,由于种种原因,安装完了nvm后,会自动带上arm这个字段去node官网下载对应的版本,但是现在node官网其实没有/node/arm/12.16.1
这种链接,所以会下载不了。 - 外面很多人说只有14.x版本arm架构的才能用,但是我成功安装了12.16.1版本的node(这里是临时方案,由于我已经统一我们公司项目的node版本,所以我用不到其他版本node,实际业务中,一定要用nvm管理node版本),大家通过下面的地址进去找到pkg的包,就可以安装使用了.(其他版本也是同理,更改版本号找到pkg安装就可以了)
https://nodejs.org/en/blog/release/v12.16.1/
node版本不统一,会带来很多环境上的问题,例如c 插件,A同事在它机器上编译了,使用的12版本,B同事拉下来,用的13版本,那么B同事很可能就跑不起来。还有就是webpack、node.js原生api和第三方库的不兼容等等,所以不管服务器还是自己电脑上都要用nvm管理node版本,它的原理也很简单,通过下载后把不同版本的node.js放在.nvm路径下的不同文件夹中隔离
- 装完node装vscode,直接官网下载,没什么兼容性问题,插件也都正常运行
- 装好了vscode,就装yarn,直接执行
npm i yarn -g
- 装完了yarn,就要装git了。怎么装呢?直接终端输入下面的命令就能安装了(牛逼)
git
- 装好了git,就要装谷歌浏览器了,直接官网下载,安装无兼容性问题
- 装好了谷歌浏览器,就可以跑项目了。直接
yarn
yarn dev
...
- 项目就这样跑起来了,是不是很简单。
难道就这?
- 我特意没有对Mac进行数据转移,而是重新开始安装,下面开始装生活软件
- 装音乐,QQ音乐,网易云,直接app store下载,没问题
- 装上网工具,完美兼容
- 装QQ 微信 企业微信 没问题 直接app store下载,没问题
装云游戏,我要打LOL
- 直接百度 START 官网下载腾讯云游戏平台
- 安装后直接打开LOL,完美运行
为什么我没有装复杂的环境
- 因为我觉得现在复杂的环境安装肯定会多多少少有点问题,会踩坑,这套环境能满足我目前的开发需求,我是个前端,不是后端
- 由于Electron已经支持M1,市面上很多软件都是基于Electron.所以兼容是迟早的事
- 对于一些例如docker之类的兼容,我相信应该很快会有人解决
发热&续航
- 我使用了8个小时后,还剩下百分50的电量,发热基本感受不到
- 非常轻量方便携带,不过打字有时候感觉会出来时候卡顿一下
- 普通前端开发,已经能完全适配了,但是你要思考一个问题,低版本的node.js我没有尝试是否能运行。还有你的那些环境有没有依赖那种比较重的工具(有兼容性风险)
最后
- 如果你喜欢Mac,而且手里的比较旧了,用起来很卡,那么推荐更换,如果还能用用,就不建议更换了。换在一年前我是不敢换的,一套很复杂的环境,几个跨平台技术 那套后端环境,M1环境可能还是有些问题,如果你的环境也很复杂,那么建议还是等等
- 后面我会慢慢装好我的那套后端环境,还有xcode、RN、flutter那些环境,到时候再写一篇。