

pagic零基础入门教程
source link: https://geekplayers.com/pagic-basic-tutorial.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

pagic零基础入门教程
刚接触到Deno不久,据说有位TypeScript大佬基于 Deno 和 React 做出了一款极简的静态网站生成框架 Pagic
,大白猜测取名自 Page static,然后缩写为pagic
。
接下来,大白来分享一下该框架的玩法,给出从零到一的Pagic入门教程,本文以 Windows 10 为例来讲解。
安装Deno
首先,我们需要安装好 Deno。
在Windows下安装Deno,有两种方式
- 在
git bash
中用curl安装
具体命令是:
curl -fsSL https://x.deno.js.cn/install.sh | sh -s v1.0.0
- 在PowerShell中使用chocolate包管理器安装
首先,你需要使用powershell安装好chocolate
,具体操作如下:
以管理员权限打开powershell,然后输入以下命令:
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
装好chocolate后,可以直接在PowerShell中以管理员权限运行如下命令:
choco install deno
安装pagic
deno安装好之后,下面就可以接着安装pagic了。
打开git bash,输入以下命令可以安装最新版的 pagic:
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:
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中执行如下命令:
choco install mkcert
接下来你还可能遇到下一个Error。
Error 2: error sending request for url … error trying to connect: invalid dnsname
分析可知,这个Error 是因为 deno 引用了github仓库release下的文件导致的。该Error的详细信息如下:
error: error sending request for url (https://deno.land/std/examples/curl.ts): error trying to connect: invalid dnsname
其解决方法是:
在 hosts 文件里面添加如下代码:
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
一开始可以只导出一个空对象:
export default {};
README.md
可以是一个简单的 Markdown 文件:
# Hi, so cool.
你可以运行以下命令一次性创建出上面的
site
项目:mkdir site && cd site && echo "export default {};" > pagic.config.ts && echo "# Hi, so cool." > README.md
运行 pagic
命令
接下来,我们就可以在项目中使用 pagic
命令了。它的基本用法如下:
# 构建静态网站
pagic build [options]
# --watch 监听文件变动以重新构建
# --serve 启动本地服务,预览静态网站
# --port 指定本地服务的端口号
打开CMD命令行,切换到 site
目录下,运行以下代码:
pagic build --watch --serve
咦,pagic
命令无法识别呀,原来需要手动将 pagic 加到 系统变量的 PATH
中。
使pagic命令可以在任意目录下的CMD命令行中调用
要在 CMD命令行的任何地方可以使用 pagic,只需把%HOMEPATH%\.deno\bin
加到PATH中即可,具体操作看下图:
此时,再输入同样的命令,就能起作用了:
打开git bash,切换到 site
目录下,运行以下代码:
pagic build --watch --serve
bash: pgic: command not found
使pagic命令可以在任意目录下的git bash中调用
要让 git bash在任何文件目录可以使用 pagic,只需为其设置好alias,并放进 .bashrc
文件即可,具体步骤如下:
- 在个人用户目录 (~)下创建
.bashrc
文件
cd ~
touch .bashrc
- 在
.bashrc
文件中添加alias别名:
pagic.cmd的默认安装目录为: /C/Users/{username}/.deno/bin/pagic.cmd
.
这里需要把{username}替换为自己的用户名。
然后输入如下命令:
notepad .bashrc
加入如下这行即可:
alias pagic='winpty /C/Users/{username}/.deno/bin/pagic.cmd'
关闭git bash,然后重新打开即可执行pagic命令了。要想在本地运行pagic项目,只需执行:
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
的内容修改为:
export default {
srcDir: 'docs'
};
然后,把写好的markdown都放到docs
文件夹中,这样build后就可以正常访问markdown页面所对应的html了。
使用pagic构建的示例网站
- 本文作者:极客玩家大白
- 本文链接:https://geekplayers.com/pagic-basic-tutorial.html
- 郑重声明:本文为博主原创或经授权转载的文章,欢迎转载,但转载文章之后必须在文章页面明显位置注明出处,否则保留追究法律责任的权利。如您有任何疑问或者授权方面的协商,请留言。
Be the first person to leave a comment!
Recommend
-
71
Go 零基础编程入门教程 - 背景:缘起一次饭局,喝到高兴处,朋友突然问我:“哪里可以找到 Go 零基础的入门视频?”,细问才知道,原来他最近想学下 Go。 我在脑海中快速检索,但无奈没有结果,只好告诉朋友:“暂时没有”。显然对于这个答案朋友有点失落,正当我不好...
-
67
Nuxt.js 基础入门教程
-
33
前言 对于应用层开发人员而言,仅仅掌握Objective-C和系统框架即可较好的完成开发,但在涉及到应用加固、逆向分析等内容时仅有应用层开发技能就会显得非常的无力,因此掌握汇编对于突破iOS开发水平的瓶颈十分有效。 一...
-
9
agicA static site generator powered by Deno + ReactEasy to configureConvention over configurationSingle config file
-
15
C++入门教程,全套C++基础教程(已更新完毕)_微学苑(编程第一站) C++入门教程,全套C++基础教程(已更新完毕) 分享到: 在线一对一...
-
4
当前位置: 主页 /...
-
8
SQLite基础入门教程 – Android开发中文站什么是SQLite SQLite是一款非常轻量级的关系数据库系统,支持多数SQL92标准。SQLite在使用前不需要安装设置,不需要进程来启动、停止或配置,而其他大多数SQL数据库引擎是作为一个单独的服务器进程,被程序使用...
-
3
...
-
12
...
-
7
Ruby是强类型动态语言,即Ruby中一旦某一个对象被定义类型,如果不通过强制转换操作,那么它永远就是该数据类型,并且只有在Ruby解释器运行时才会检测对象数据类型,它的一切皆为对象(包括 nil 值对象),可以通过调用内置class属性来获取该对象的具体数据类型。对...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK