前端上手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那些环境,到时候再写一篇。