闻心阁

一蓑烟雨看苍生,半壶浊酒笑红尘

Flutter docter 报错:Flutter / Dart plugin not installed Android Studio

2021-02-08 约 1 分钟读完 搬砖秘籍
安装Flutter遇到了如下的错误: Android Studio (version 4.1) ✗ Flutter plugin not installed; this adds Flutter specific functionality. ✗ Dart plugin not installed; this adds Dart specific functionality. 解决方案 方案一: ln -s ~/Library/Application\ Support/Google/AndroidStudio4.1/plugins ~/Library/Application\ Support/AndroidStudio4.1 方案二: 升级Flutter Beta版本 flutter channel beta flutter upgrade 原因分析 Android Studio4.1版本将Plugin路径改了,所以要么升级Flutter,要么映射一个路径。

uni-app 启用 tree-shaking

2020-04-14 约 1 分钟读完 搬砖秘籍
使用了uni-app cli开发小程序和 H5 的跨平台应用,打包代码的时候为了追求体积,尝试启用 tree-shaking ,按照 uni-app官方的说法,这项目功能是给 H5 平台用的,不过测试了一下,发现结果还不太一样,这里做一个记录。 H5 平台 在 mainfest.json 中添加如下的配置 "h5": { "optimization": { "treeShaking": { "enable": true } } } 这是不够的,还需要改babel.config.js, '@vue/app', { modules: false,//原来是commonjs useBuiltIns: process.env.UNI_PLATFORM === 'h5' ? 'usage' : 'entry' } 这样就可以启用 H5 平台的treeShaking,使用示例项目打包一下是可以的。 微信小程序平台 默认情况下,微信小程序平台是不行的,但在执行了上面的babel.config.js的修改之后,发现打包出来的vender.js中已经把没有引用到的函数给删除了,可以说是一个意外的惊喜了。 风险 目前上面的测试仅针对于示例登录项目的测试,修改此文件带来的其他风险暂时无法评估。

pm2 是怎样处理端口冲突的?

2020-04-04 约 1 分钟读完 搬砖秘籍
使用pm2在本地启动了2个项目,2个项目都是使用了3000的端口,发现2个项目都启起来了。这是什么黑科技啊? 定位一下3000端口 先定位了一下3000端口的占用情况。 lsof -i tcp:3000 结果: 是73333 看一下pm2 pm2 ls PID并不是73333 什么关系 使用下面命令 ps -ef | grep 95706 ps -ef | grep 95656 原来是 PID 和 PPID, 所以就明了了:父进程进行端口监听,然后分发给子进程进行处理。 思考 那2个项目中的API路径一样怎么办?

pm2 环境变量不生效的解决方法

2020-04-03 约 1 分钟读完 搬砖秘籍
pm2 设置环境变量有2种方法。 方法一 NODE_ENV=XXXXX pm2 XXXX 方法二 使用一个单独的配置文件,可以参考官网 https://pm2.keymetrics.io/docs/usage/environment/ 如: pm2 start ecosystem.config.js --env production 设置不生效 尝试了上述2种方法发现都不行,最近找到解决方案。如果实例已经建立了,即在 pm2 ls 中可以看到,那先需要运行 pm2 delete YOUR_INSTANCE 把原来删除才可以。

Xcode 升级 React Native Unknown argument type '__attribute__' in method 解决方案

2019-10-16 约 1 分钟读完 搬砖秘籍
最近MacOS系统更新,顺便把XCode的版本也进行了升级,但升级之后出现了错误: [RCTModuleMethod.mm:376] Unknown argument type '__attribute__' in method -[RCTLinkingManager getInitialURL:reject:]. Extend RCTConvert to support this type. 解决方案 参考这个issue:https://github.com/facebook/react-native/issues/25138 解决见这个PR:https://github.com/facebook/react-native/pull/25146 在 React/Base/RCTModuleMethod.mm 中的 RCTParseUnused 方法添加一行代码 static BOOL RCTParseUnused(const char **input) { return RCTReadString(input, "__attribute__((unused))") || RCTReadString(input, "__attribute__((__unused__))") || RCTReadString(input, "__unused"); }

Mac复制图片到剪贴板

2019-09-16 约 1 分钟读完 搬砖秘籍
最近使用Mac中的Alfred实现一个截图复制到剪贴板的功能,这个命令比较特殊,记录一下。 #!/usr/bin/osascript on run args set the clipboard to POSIX file (first item of args) return the clipboard end