Pagic Windows Installation Again

Pagic Windows 降级安装

Pagic dist on http 127

📝 笔记总结

克隆仓库,修改 i18n.tsx,安装成功,但是部署中还会出现 CDN 错误。

📖 内容来源

Pagic:Deno + React 驱动的静态网站生成器

🔧 安装 Deno v1.34.1

PowerShell (Windows) (失败)

原理是将脚本内容下载后,通过管道传递给 Invoke-Expression,并使用 -ArgumentList 来指定版本号:

1
irm https://deno.land/install.ps1 | iex -ArgumentList \"v1.34.1\"

1
irm https://deno.land/install.ps1 | iex -args \"v1.34.1\"

分两步执行(成功)

1
2
3
4
# 1. 下载脚本到本地临时文件夹
Invoke-RestMethod -Uri \"https://deno.land/install.ps1\" -OutFile \"$env:TEMP\\deno_install.ps1\"
# 2. 执行脚本并传入参数
& \"$env:TEMP\\deno_install.ps1\" \"v1.34.1\"

Deno Windows deno install 1.34.1

🧩 安装后验证

安装完成后,记得关闭并重新打开你的 PowerShell 终端,然后运行以下命令来确认版本:

1
deno --version

⬆️ 安装 Pagic

安装最新版本

1
deno install --unstable --allow-read --allow-write --allow-net --allow-env --allow-run --name=pagic https://deno.land/x/pagic/mod.ts

安装指定版本

1
deno install --unstable --allow-read --allow-write --allow-net --allow-env --allow-run --name=pagic https://deno.land/x/pagic@v1.6.3/mod.ts

指定读写目录的方式

1
deno install --unstable --allow-read=/home/xcatliu/site --allow-write=/home/xcatliu/site --allow-net --allow-env --allow-run --name=pagic https://deno.land/x/pagic/mod.ts

指定读写目录的方式

1
deno install --unstable --allow-read=/home/xcatliu/site --allow-write=/home/xcatliu/site --allow-net --allow-env --allow-run --name=pagic https://deno.land/x/pagic/mod.ts

🚫 CDN 错误

1
2
3
4
5
6
7
PS D:\\git> deno install --unstable --allow-read --allow-write --allow-net --allow-env --allow-run --name=pagic https://deno.land/x/pagic/mod.ts
Warning Implicitly using latest version (v1.6.3) for https://deno.land/x/pagic/mod.ts
Sending fatal alert BadCertificatey@v0.25.7/prompt/_generic_suggestions.ts (10/57)
Sending fatal alert BadCertificate11.0/fs/mod.ts 0.40KiB/0.40KiB (15/57)
error: error sending request for url (https://cdn.pagic.org/i18next@19.8.1/esnext/i18next.js): error trying to connect: invalid peer certificate: NotValidForName
at https://deno.land/x/pagic@v1.6.3/src/plugins/i18n.tsx:4:21
PS D:\\git>

错误是由于 Deno 在下载依赖时遇到了 SSL 证书验证问题。具体是 cdn.pagic.org 这个域名的证书无效(NotValidForName 错误)。

Pagic error sending request for url

🎯 本地安装

克隆仓库

1
git clone git@github.com:xcatliu/pagic.git

修改 i18n.tsx

1
2
3
4
# pagic\\src\\plugins\\i18n.tsx
import i18next from '../../cdn.pagic.org/i18next@19.8.1/esnext/i18next.js';
import { Trans as TransComponent } from '../../cdn.pagic.org/react-i18next@11.7.3/Trans.js';

安装 Pagic

1
deno install --unstable --allow-read --allow-write --allow-net --allow-env --allow-run --name=pagic mod.ts

Pagic Successfully installed pagic

##💡初始化项目

要使用 pagic 构建静态网站,则该项目至少需要包含一个 pagic.config.ts 配置文件和一个 md/tsx 页面文件:

site/
├── pagic.config.ts
└── README.md

当然,pagic.config.ts 一开始可以只导出一个空对象:

1
export default {};

README.md 可以是一个简单的 Markdown 文件:

1
# Hello world

你可以运行以下命令一次性创建出上面的 site 项目:

1
mkdir site && cd site && echo \"export default {};\" > pagic.config.ts && echo \"# Hello world\" > README.md

📚 运行 pagic build

接下来,我们就可以在项目中使用 pagic build 命令了。它的基本用法如下:

1
2
3
4
5
# 构建静态网站
pagic build [options]
# --watch 监听文件变动以重新构建
# --serve 启动本地服务,预览静态网站
# --port 指定本地服务的端口号

不妨试试在 site 目录下运行以下代码:

1
pagic build --watch --serve

然后用浏览器打开 http://127.0.0.1:8000/ ,看看是不是显示出 Hello world 了呢?

注意,构建结果在 dist 目录中(这里隐藏了一些次要的文件):

1
2
3
4
5
site/
|── dist # 构建结果目录
| └── index.html
├── pagic.config.ts
└── README.md

一般的 Markdown 文件会被构建为同名的 HTML 文件,但是 README.md 被构建为了 index.html,这是一种人性化的处理,方便同时在 GitHub 中和静态网站中展示首页的内容。

Pagic pagic build watch serve

后面不尝试了,因为还会出现 CDN 出错,修改本地文件或许可以构建成功,但是不太顺利。