pagic零基础入门教程_极客玩家大白

pagic零基础入门教程

刚接触到Deno不久,据说有位TypeScript大佬基于 Deno 和 React 做出了一款极简的静态网站生成框架 Pagic,大白猜测取名自 Page static,然后缩写为pagic

接下来,大白来分享一下该框架的玩法,给出从零到一的Pagic入门教程,本文以 Windows 10 为例来讲解。

安装Deno

首先,我们需要安装好 Deno。

在Windows下安装Deno,有两种方式

  • git bash中用curl安装

具体命令是:

1
curl -fsSL https://x.deno.js.cn/install.sh | sh -s v1.0.0
  • 在PowerShell中使用chocolate包管理器安装

首先,你需要使用powershell安装好chocolate,具体操作如下:

以管理员权限打开powershell,然后输入以下命令:

1
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

装好chocolate后,可以直接在PowerShell中以管理员权限运行如下命令:

1
choco install deno

安装pagic

deno安装好之后,下面就可以接着安装pagic了。

打开git bash,输入以下命令可以安装最新版的 pagic:

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

处理常见的 Error/Exception

Error 1: error sending request for url … error trying to connect: received corrupt message

执行完刚刚的 deno install ...命令后,出现如下Error:

1
error: error sending request for url (https://deno.land/std/path/mod.ts): error trying to connect: received corrupt message

分析可知:

这个Error是自己电脑上https的证书对 deno 无效引起的。查资料可知 开源项目 mkcert 可完美解决该问题,需要在PowerShell中执行如下命令:

1
choco install mkcert

接下来你还可能遇到下一个Error。

Error 2: error sending request for url … error trying to connect: invalid dnsname

分析可知,这个Error 是因为 deno 引用了github仓库release下的文件导致的。该Error的详细信息如下:

1
error: error sending request for url (https://deno.land/std/examples/curl.ts): error trying to connect: invalid dnsname

其解决方法是:

在 hosts 文件里面添加如下代码:

1
199.232.68.133 raw.githubusercontent.com

如果你的电脑是 Windows 系统,这个文件位置在 C:\Windows\System32\drivers\etc 目录。

MacOS 系统在 /etc/hosts,

设置完hosts之后,ipconfig /flushdns 刷新dns缓存。

问题解决好后,我们继续下一步~

初始化 pagic 项目

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

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

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

1
export default {};

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

1
# Hi, so cool.

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

1
mkdir site && cd site && echo "export default {};" > pagic.config.ts && echo "# Hi, so cool." > README.md

运行 pagic 命令

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

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

打开CMD命令行,切换到 site 目录下,运行以下代码:

1
pagic build --watch --serve

极客玩家大白-image1

咦,pagic命令无法识别呀,原来需要手动将 pagic 加到 系统变量的 PATH 中。

使pagic命令可以在任意目录下的CMD命令行中调用

要在 CMD命令行的任何地方可以使用 pagic,只需把%HOMEPATH%\.deno\bin加到PATH中即可,具体操作看下图:

极客玩家大白-系统变量PATH

此时,再输入同样的命令,就能起作用了:

极客玩家大白-系统变量

打开git bash,切换到 site 目录下,运行以下代码:

1
pagic build --watch --serve

会出现:

1
bash: pgic: command not found

极客玩家大白

使pagic命令可以在任意目录下的git bash中调用

要让 git bash在任何文件目录可以使用 pagic,只需为其设置好alias,并放进 .bashrc文件即可,具体步骤如下:

  • 在个人用户目录 (~)下创建 .bashrc 文件
1
2
cd ~
touch .bashrc


  • .bashrc 文件中添加alias别名:

pagic.cmd的默认安装目录为: /C/Users/{username}/.deno/bin/pagic.cmd.

这里需要把{username}替换为自己的用户名。

然后输入如下命令:

1
notepad .bashrc

加入如下这行即可:

1
alias pagic='winpty /C/Users/{username}/.deno/bin/pagic.cmd'

关闭git bash,然后重新打开即可执行pagic命令了。要想在本地运行pagic项目,只需执行:

1
pagic build --serve

极客玩家大白-系统变量

当然还需要注意一点,build时需要关闭科学上网工具~

然后用浏览器打开 http://127.0.0.1:8000/ ,看看是不是显示出 Hi, so cool. 了呢?

极客玩家大白-静态站点界面

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

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

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

Pagic 只关心 include 指定的 README.md 文件和 docs 目录(放.md文件夹的地方)。 include 中允许配置 glob 格式的字符串,如 docs/*/.md 就只会匹配到 docs 目录下的所有 md 文件。

大白推荐的做法是:

将文件pagic.config.ts 的内容修改为:

1
2
3
export default {
    srcDir: 'docs'
};

然后,把写好的markdown都放到docs文件夹中,这样build后就可以正常访问markdown页面所对应的html了。

使用pagic构建的示例网站

版权声明

  • 本文作者:极客玩家大白
  • 本文链接:https://yanglr.github.io/pagic-basic-tutorial.html
  • 郑重声明:本文为博主原创或经授权转载的文章,欢迎转载,但转载文章之后必须在文章页面明显位置注明出处,否则保留追究法律责任的权利。如您有任何疑问或者授权方面的协商,请留言。


一个有故事的程序员

(转载本站文章请注明作者和出处 极客玩家大白

点击了解 :.NET技术人的网站


Show Disqus Comments

Post Directory