问题
nextjs是react的ssr后端渲染框架,在搭建过程中遇到一些问题,再次记录下来。
- 使用antd ui框架,同时使用scss预处理器,在next.config.js中同时使用
with-less和with-sass,并没有达到预期中的结果,scss文件解析正常,antd样式全丢。 - 实现antd的按需加载
- 使用typescript,如何配置。
添加postgreql源
$ wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | sudo apt-key add -
$ sudo sh -c ‘echo “deb http://apt.postgresql.org/pub/repos/apt/lsb_release -cs
-pgdg main” >> /etc/apt/sources.list.d/pgdg.list’
安装 postgresql
$ sudo apt-get update
$ sudo apt-get install postgresql postgresql-contrib libpq-dev
添加用户
$ sudo -u postgres createuser –superuser roleuser
设置密码
$ sudo -u postgres psql
\password postgres
\q
修改配置 pg_hba.conf
local all all trust #修改peer为trust
修改设置postgresql.conf,让postgresql可远程访问
listen_addresses = ‘*’
在 pg_hba.conf 中添加
host all all 192.168.1.0/24 md5
192.168.1.0 ip换为自己的ip,
前面已经使用travis部署自己的gitpage了,有些方法可以扩展到部署项目。这样就能够在我提交代码的时候,travis就可以就自动更新服务器的代码,并自动构建。
通过git clone命令把这个项目克隆到本地,然后在项目根目录下添加一个**.travis.yml**文件。这个文件是travis-ci持续集成的关键,它定义了你所有持续集成的操作。为了简单起见,我们仅仅使用它进行自动化部署:
1 | language: node_js |
配置ssh登录,前面已经写过。这样就可以登录远程服务器并完成,但是暴露密码总是不可以的…
1 | gem install travis |
1 | travis login |
** –add参数表示自动添加脚本到.travis.yml文件中**
1 | travis encrypt-file ~/.ssh/id_rsa --add |
这时会看到.travis.yml多了一段before_install的内容:
1 | before_install: |
然后把最后一行的“\”转义符删掉,并换行顶格添加如下两条内容:
1 | - chmod 600 ~/.ssh/id_rsa |
切记把xxx.xxx.xxx.xxx换成你服务器的IP。
最后把添加.travis.yml的项目push到github即可。
重新回到travis-ci.org的页面,进入项目,就能够看到持续集成的效果了。
使用travis登录远程服务器已经达成,拉去代码也可以,但是这次遇到一个问题:zsh:1: commad not found:npm,明明手动登录可以使用npm的,travis就不可以了呢?
排查了下发现原因是因为node是使用nvm管理的,npm不在**/usr/bin**下导致的,那一个解决方案就通过包管理器方式安装 Nodejs。
一般使用ssh访问远程服务器的命令是:
1 | ssh username@ip地址 |
例如:ssh root@112.232.12.12,然后输入密码即可访问。
<–more–>
使用cd ~/.ssh/ 进入ssh目录,会看到有config、known_hosts两个文件,一般的没有设置的话,只会有known_hosts,可以使用touch config命令创建config文件。
使用vim编辑config文件,添加如下内容:
1 | Host txy |
其中:
1、Host 后边的是别名,以后可以根据这个名称进行访问;
2、HostName是你的主机IP地址;
3、User为主机登录的用户名;
4、IdentitiesOnly yes固有配置;
设置完成,后期的话使用:ssh txy 然后输入密码,就可以登录到远程主机啦!
每次登录SH都需要输入密码很麻烦,而且可能不太安全。SSH还能使用另外一种登录方式,也就是使用密钥登录。这种登录方式需要客户端生成一堆公钥私钥对,然后将公钥添加到服务器中,这样下次就可以直接登录了。
首先生成SSH密钥,依照提示输入信息即可。默认生成在用户主目录中的.ssh文件夹中。带pub的是公钥,接下来需要添加到服务器中。
然后登陆服务器,打开.ssh文件夹,在authorized_keys中添加到对应公钥。然后退出SSH重新登陆试试,成功的话不需要输入密码就会直接进入远程服务器。
公司开发项目迁移,中间大约一周左右的测试期,两边地址都要上传,那么如何方便快捷的把代码托管到多个平台呢?
例如我有下面两个仓库:
1 | https://gitlab.com/***/doctor.git |
先添加第一个仓库:
1 | git remote add origin https://gitlab.com/***/doctor.git |
再添加第二个仓库:
1 | git remote set-url --add origin https://github.com/***/doctor.git |
如果还有其他,则可以像添加第二个一样继续添加其他仓库。
然后使用下面命令提交:
1 | git push origin --all |
打开.git/config,可以看到这样的配置:
1 | [remote "origin"] |
刚才的命令其实就是添加了这些配置。如果不想用命令行,可以直接编辑该文件,添加对应的url即可。
如果两个地址的账号还不一样呢?
首先生成另一个ssh公钥, 比如id_rsa_doctor,id_rsa_doctor.pub,
然后配置**.ssh**文件夹下的config文件,没有的话建立。
1 | Host default |
这样的话就可以一次操作后,提交到两个仓库地址了。