最近要快速开发个小程序,心想着要是按微信推荐那样开发得累死,所以研究了下如何使用mpvue+Vant+npm快速构建微信小程序。
基础架子
项目地址:mpvue.com
首先用mpvue来拉一个基础的架子,这样方便我们后续集成一些其他的东西。
#安装vue-cli,有可以跳过
npm install -g vue-cli@2.9
#使用vue-cli创建mpvue项目
vue init mpvue/mpvue-quickstart 你的项目名
#安装依赖啥的
cd 你的项目目录
yran
yarn dev
Error:注意:
受微信动态增删改查 wxml 节点信息限制,某些VUE组件用不了。详细可看官方说明~
受微信动态增删改查 wxml 节点信息限制,某些VUE组件用不了。详细可看官方说明~
集成npm
首先在你的项目目录下,新建lib
目录,用处存放第三方npm包。
我在真机调试下,调试小程序Canvas,一直无法绘制,我以为是Echarts不兼容导致的。
实际上,这TMD的是微信开发者工具的问题,真机和模拟器都没问题。
微信小程序,任何涉及到原生组件的调试一定要在真机上调试!Android和IOS都试一遍,不然就是大坑!!!
Electron 其实提供的跨平台的通用开机自启动支持。
但是因为Windows系统的限制,如果您的Electron在运行时要使用管理员权限的话,这样设置的自启动会失效。
目前解决方法有两种,一种是服务,另一种是写注册表启动项
服务的方案,优点就是,在启动的时候不会弹出UAC,缺点是,需要额外的精力来维护这个服务支持组件。
所以,个人比较推荐使用写注册表的方式
缺点就是开机会弹UAC~ 不过无伤大雅
如果强制使用32位路径的话添加
/reg:32
let cp = require('child_process');
// 获取可执行文件位置
const ex=process.execPath;
// 定义事件,渲染进程中直接使用
// 开启 开机自启动
ipcMain.on('openAutoStart',()=>{
console.log('updateExe',ex)
// 注释的是electron官方提供的自启方法
// app.setLoginItemSettings({
// openAtLogin: true,//是否自启
// openAsHidden:false,//启动后是否显示窗体
// path: ex,//启动路径
// args: [] //启动时的参数
// });
cp.exec(`REG ADD HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run /v 软件名 /t REG_SZ /d "${ex}" /f`,function(err){
console.log(err);
});
});
// 关闭 开机自启动
ipcMain.on('closeAutoStart',()=>{
// 注释的是electron官方提供的自启方法
// app.setLoginItemSettings({
// openAtLogin: false,//是否自启
// openAsHidden:false,//启动后是否显示窗体
// path: ex,//启动路径
// args: [] //启动时的参数
// });
cp.exec("REG DELETE HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Run /v 软件名 /f",function(err){
console.log(err);
});
})
//检查注册表项是否存在
ipcMain.handle('checkAutoStart',async ()=>{
return await new Promise((resolve, reject)=>{
cp.exec("REG QUERY HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Run /v 软件名",function(err,stdout,stderr){
resolve(stdout);
console.log(stderr);
console.log(err);
});
})
})
更多用法可以使用
REG /?
命令查看 Electron 实现部分窗体挂代理来方便调试
在需要挂代理的窗体中添加下面的代码:
await OAuth.webContents.session.setProxy({
//代理地址,可用Http/Socks协议
proxyRules:"http://127.0.0.1:1080",
//代理排除的域名/地址
proxyBypassRules:'www.idzd.top'
});