Explaination of version range operators in package.json for package dependencies

Explaination of version range operators in package.json for package dependencies

To see the syntax and Railroad diagram version, goto here

Basic Structure

Package dependecies are a tuple of [major, minor, patch] with numeric values.

package.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"name": "project name",
"version": "0.0.1",
"description": "description of the project",
"keywords": [
"keyword 1",
"keyword 2"
],
"author": "John Doe",
"dependencies": {
"package-1": "~0.6.2",
"package-2": ">=2.6.2"
}
}

Version Range operator

Basic Range

For x in exmaple, see Advanced Range below.

Operator Explaination Example
= package version must be exactly matched 1.0.0 := =1.0.0
(They are equivalent)
< package version must be less than indicated <2.0.0
:=version from 0.0.1 to 1.x.x
<= package version must be less than or euqal to indicated <=2.0.0
:=version from 0.0.1 to 2.0.0
> package version must be greater than indicated >2.0.0:=
version from 2.0.1 to x (x >= 2)
>= package version must be greater than or euqal to indicated >=2.0.0
:=version from 2.0.0 to x (x >= 2)
|| joined one or more operator >2.0.1 || <1.7.3
:=version greater than 2.0.1 or less than 1.7.3
space Intersected one or more operator >=2.0.1 <=1.7.3
:=version from 2.0.1 to 1.7.3 (inclusive)

Advanced Range

Advanced ranges may be combined in the same way as primitive comparators using space or ||.

Read more
Why you shouldn't deploy your Hexo webpage using GitHub Desktop?

Why you shouldn't deploy your Hexo webpage using GitHub Desktop?

Methods to Deploy Hexo to GitHub.io

Assume you’ve created a repository on GitHub called <username>.github.io. Here are two common method you can deploy you Hexo Blog:

Hexo Command

Hexo’s documentations and Tutorial has provided sufficient instructions on deploying your personal website on your GitHub repository.

According to the Hexo Tutorial, we can deploy the repository by using GitHub Actions.

  1. Create and Add the following contents to .github/workflows/pages.yml:
.github/workflows/pages.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
name: Pages

on:
push:
branches:
- main # default branch

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
token: $
submodules: recursive
- name: Use Node.js 20
uses: actions/setup-node@v4
with:
# Examples: 20, 18.19, >=16.20.2, lts/Iron, lts/Hydrogen, *, latest, current, node
# Ref: https://github.com/actions/setup-node#supported-version-syntax
node-version: ">=20"

- name: Cache NPM dependencies
uses: actions/cache@v4
with:
path: node_modules
key: $-npm-cache
restore-keys: |
$-npm-cache
- name: Install Dependencies
run: npm install
- name: Build
run: npm run build
- name: Upload Pages artifact
uses: actions/upload-pages-artifact@v3
with:
path: ./public
deploy:
needs: build
permissions:
pages: write
id-token: write
environment:
name: github-pages
url: $
runs-on: ubuntu-latest
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
  1. Install hexo-deployer-git.
  2. Add/Change the following configurations to _config.yml:
_config.yml
1
2
3
4
5
deploy:
type: git
repo: https://github.com/<username>/<project>
# for example, this blog is https://github.com/greenmeeple/greenmeeple.github.io
branch: gh-pages
  1. After finishing your bog posts, Run hexo clean && hexo deploy.
Read more
Mathjax prime superscript problem in Hexo theme

Mathjax prime superscript problem in Hexo theme

Prime superscript problem (e.g. x’_i) in Mathjax

When I was using Mathjax to create math formula in my blog post, I typed
((q_1, q_2), a, (q'_1, q'_2)) \in S \times \Sigma_{int} \times S and it rendered as

$((q_1, q_2), a, (q’_1, q’2)) \in S \times \Sigma{int} \times S$

However, when ((q_1, q_2), a, (q'_1, q'_2)) & \in S \times \Sigma_{int} \times S are seperated, they rendered properly.

$$((q_1, q_2), a, (q’_1, q’_2))$$

$$\in S \times \Sigma_{int} \times S$$

Maybe I should use \left and \right for (), just like \lbrace and \rbrace for {}?

So I typed \left( \left( q_1, q_2 \right), a, \left( q'_1, q'_2 \right) \right) \in S \times \Sigma_{int} \times S, didn’t work out:

$\left( \left( q_1, q_2 \right), a, \left( q’_1, q’2 \right) \right) \in S \times \Sigma{int} \times S$

Source of error

Read more
Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×