我如何解决 homebrew cask 安装 emacs 失败问题

2022-06-27, 星期一 |
macOShomebrew

为了在macOS上安装 emacs, 我安装emacs官网提供的教程, 即运行 brew install --cask emacs, 运行之后报错了. 我是如何解决这个问题的呢?

我首先为了更新 brew, 则需要采用非 shallow 的方式安装 homebrew-core, 那么可以用log输出的提示安装, 如:

git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow

然后, 我再运行 brew update --verbose, 这样, 我就更新了 homebrew 的 formula.

上面的 brew 更新好了以后, 我就可以利用 homebrew cask 来安装 emacs 了, 直接执行 brew install --cask emacs, 则会先利用 homebrew 安装 cask, 然后再安装 emacs.

为了解决上面的问题, 我特意上网搜索了一番, 搜索的关键字是前面命令运行出错的日志输出. 如

Error: Invalid cask

Cask is

Git checkout 远程分支和本地文件夹冲突了怎么切换到该目标分支

2022-06-08, 星期三 |
git

git checkout 分支名 报错? fatal: 'ssr' could be both a local file and a tracking branch. 如何解决?

fatal: 'ssr' could be both a local file and a tracking branch. Please use – (and optionally –no-guess) to disambiguate

是否用 git checkout origin/ssr?, 并不赞成. 因为这是一个远程分支.

那么怎么办呢? 答: 用 switch 如下,

git switch ssr

结果:

On branch ssr Your branch is up to date with 'origin/ssr'.

nothing to commit, working tree clean

观察结果, 可以看到成功切换到了 ssr 分支, 可以再用 git statusgit branch 确认一下.

Nginx map 在配置前端项目多版本中的应用

2022-05-31, 星期二 |
配置

TL;DR

Nginx 的配置中有一个指令 map 可用于定义变量及其取值, 根据这个定义的变量可以动态的配置静态站点的目录.

实验目标

用户访问 v1.dev.example.com 和 v2.dev.example.com 分别得到 var/www/html/v1var/www/html/v2 的目录 中的静态资源.

必要条件

  • 泛解析(wildcard)的域名指向同一台服务器
  • 在系统中配置好前端静态资源的多个版本对应的多个目录

语法知识

map 指令

Syntax: map string $variable { … }

Default: —

Context: http

Code

map $http_host $name {
    hostnames;

    default       0;

    example.com   1;
    *.example.com 1;
    example.org   2;
    *.example.org 2;
    .example.net  3;
    wap.*

sails命令行工具之生成器

2017-05-26, 星期五 |
前端

sails generate

Sails 搭配几个 generators 来帮助您快速的搭建一个新的项目. 您也可以 创建您自己的 generators 来处理频繁的任务, 或者扩展功能 (例如,通过创建一个 generator 来为您钟爱的模板语言输出视图文件).

下列 generators 集成于 Sails:

sails generate new <appName>

在一个叫做 appName 的文件夹中创建一个新的 Sails 项目. 见sails new有用法选项.

sails generate api <foo>

生成 api/models/Foo.jsapi/controllers/FooController.js

sails generate model <foo> [attribute1:type1, attribute2:type2 ... ]

生成 api/models/Foo.js, 加入指定类型的 attributes 可选.

sails generate controller <foo> [action1

快速开始CSS BEM命名规范

2017-05-22, 星期一 |
tutorial前端样式

介绍

BEM (Block, Element, Modifier)是一种基于组件的Web开发方法。 其观点是将用户界面划分为独立的块。 即使使用复杂的UI,界面开发也变得简单快捷,并且允许复用现有的代码。

Block

功能独立的页面组件,可以重复使用。 在HTML中,块由class属性表示。

特点:

块名称描述了它的目的(“它是什么?” - 菜单或按钮),而不是其状态(“它是什么样子”? - 红色或大)。

例子
<!-- Correct. The `error` block is semantically meaningful -->
<div class="error"></div>

<!-- Incorrect. It describes the appearance -->
<div class="red-text"></div>
  • 该块不应影响其环境,这意味着您不应设置块的外部边距或定位。
  • 使用BEM时也不应使用标签或ID选择器。

这确保了重新使用块或将它们从一个地方移动到另一个地方是好的。

块使用指