很久没写文章了,最近也没有学什么,有点荒废。尝试着学习一些新东西,GraphQL、Gatsby、Netlify等(可能对不少人来讲不是新东西了)。其中学到Netlify的时候发现,很适合部署静态网站,因此就尝试着部署了一下,发现还真是简单,只须要填写几个命令就能够完成静态站点的部署了,免费托管,简直是比gh pages还要方便。因此尝试了几个静态网站以后,好比周公子的花园,就是一键式部署。html
而后我就想,把一些项目都试着部署一下,首先就想把这个Next-Antd-Scaffold脚手架部署上去,以前讲过部署了,可是那个部署是有条件的:node
next export
那么对于学生党或者初学者来讲,实际上并无感觉到本身建站的完总体验,这里就想着经过这种部署方式,把脚手架部署上去。webpack
ok,上面说了,想用的是Nelify进行部署,那么我想多了,或者说我功课没作到位,Netlify部署虽然很简单,可是并无成功,过程以下:git
第一步,选择仓库 github
第二步,部署配置 web
第三步,部署中 npm
第四步,部署完成(失败)json
那个长得不是很好看的地址是netlify为咱们分配的,你还能够经过 site settings进行custom化,确实很方便。bash
上面失败,也情有可原,谁让本身懒了呢,为啥这么说呢?Next.js本来就是zeit仓库的一个项目,而对应配套的,zeit仓库还有一个now项目,专门进行部署的,真是很是很是NB啊,不得不佩服大牛们~服务器
本来我觉得会很简单的就能够部署成功呢,为啥呢,由于准备工做作好以后只有一条命令,那就是now
,而后就等待就好了,结果然是惨不忍睹,各类问题各类踩坑,因此分享给你们踩坑经历吧~
能够看到,部署失败了六次,第七次才部署成功~艰难险阻啊
事先声明,now-cli很强大,我只用来部署Next.js项目了,其实它能够支持不少不少种部署,具体以下图
首先就是安装now工具了,官方提供下载地址,各类版本的。我习惯直接npm了,你们按需安装。
// 安装now
npm install -g now
复制代码
安装完以后火烧眉毛的进行尝试,我其实就是按照文档一步一步来作的,文档地址zeit-now docs以及now-next docs。
具体的你们本身去读吧,我只是负责帮大家踩坑,一步一步来。
新建now.json
配置文件,键入以下代码:
{
"version": 2,
"builds": [{ "src": "next.config.js", "use": "@now/next" }]
}
复制代码
而后运行部署命令:
now
复制代码
没错,我什么都没作,就直接运行命令了。显而易见,我失败了,哈哈。now的好处就是失败了会有详细的部署日志,失败缘由。
no serverless pages
,这是个什么东西我不太清楚,由于next.js正常部署是不会有这个东西的,那么就去查文档,发现以下:
咱们对代码进行了以下修改:
// next.config.js
...
module.exports = {
...
+ target: 'serverless'
...
}
...
复制代码
再次进行部署:
now
复制代码
不出意外,又失败了:
Next.js的部署文档也提供了now的注意事项,因此咱们若是看的特别仔细,也会避免这种问题。 那么,咱们就修改吧,把代码里全部的提早配置都修改掉。修改方式有不少种,官方也给了方案,好比:
还有就是能够经过babel-plugin-transform-define或者Webpack DefinePlugin。
ok ,没问题了,部署成功就能够直接访问了部署后线上地址。预览一下,也基本没什么问题,以为仍是挺简单的,可能我太笨了,哈哈。
此次单纯是我想写,从开始到结束也就两个小时各类截图,没什么技术,纯当是没有服务器的同窗免费尝试免费玩一玩了。
最后部署的分支是脚手架的now分支。部署过程是拿master分支尝试的,你们注意了哦。
Next-antd-scaffold脚手架能够正式用了,没有人提issue和贡献一下吗~哈哈