轶哥

妄图改变世界的全栈程序员。

Apple M1 编译原生Electron应用程序

Apple Silicon M1芯片可谓是性能爆炸,开发体验极佳,生态中适配速度也算得上势如破竹。借助Rosetta 2平稳过渡ARM64,实在是高明。在MacOS 11+系统中通过 Apple M1 编译原生M1 Electron应用程序也算得上轻松容易。

理论兼容M1芯片的Electron版本是11.2.3,实测兼容较好的版本是13.0.0-beta.5+

electron-builder需升级至20.10+,建议版本22.10.5+

本地Node.js版本请安装v15.5.0+

MacOS建议升级到11.2.3+

通过electron-builder编译Electron ARM64应用程序,需调整package.json配置文件。

Electron 12+ 出现 require is not defined 报错解决

在 Electron 12 及更高版本,设置了nodeIntegration: truenodeIntegrationInWorker: truenodeIntegrationInSubframes: true,渲染进程仍然可能出现require is not defined的报错。

这个报错还跟随有module is not definedexports is not defined

同样的报错在Electron 5+曾出现过,原因是发布v5.0.0的时候,官方将nodeIntegration默认值设置为了false(与此同时还将webviewTag设置为了false)。

近期,Electron 12.0.0 发布。修复了诸多异常。同时也将contextIsolation的默认值更改为true(详见:https://github.com/electron/electron/pull/27949)。

Json Schema定义“既可以是对象,又可以是数组”

如果我想定义json的内容(root)既可以是一个对象,又可以是一个数组,应该如何书写json schema?

这个问题换一种描述方式,“json schema定义了一个对象,但是希望内容也可以是这个对象的数组,如何书写json schema?”。

例如,Typescript中:root: object | [object]

例如,我希望数据可以是下面这样的一个对象:

{
  "method": "GET"
}

也可以是这样的数组:

[
  {
    "method": "GET"
  }
]
JavaScript练习题

学习JavaScript绝佳的方法是阅读代码。阅读代码需要熟悉JavaScript的基本语法,包括作用域、类型及类型转换、原型链、函数、异步、闭包等内容。In-JavaScript-we-trust给我们提供了非常好的练习素材。

赶紧自测一下JavaScript掌握得怎么样!

H5在线练习地址https://js.wyr.me

仅支持手机访问(毕竟做完68道题是需要耐心的,这是为了避免打开调试界面偷懒而设计)。

NuxtJS中Axios的配置说明

nuxt.js中使用axios,推荐使用nuxt定制款nuxt/axios(https://axios.nuxtjs.org/)。相比原生axios有如下优势:

  • 自动为客户端和服务器端设置baseURL
  • setToken函数暴露给$axios,可以非常容易的进行全局Authentication tokens设置
  • 基于baseURL发起请求时,自动启用withCredentials
  • 添加用于服务器端渲染的Proxy请求Header
  • 支持使用axios加载CSS
  • Nuxt进度条集成
  • Proxi模块集成
  • 使用axios-retry自动重试请求
  上一页下一页