0%

调试 npm script 命令

注意:此为 configurations 中的一条配置,具体看下一条

1
2
3
4
5
6
7
8
9
10
{
"name": "Launch via NPM",
"type": "node",
"request": "launch",
"runtimeExecutable": "npm", //runtimeExecutable表示要使用的运行时,默认为node,这里我们配置成了npm
"runtimeArgs": [
"run-script", "dev" //这里的dev就对应package.json中的scripts中的dev
],
"port": 9229 //这个端口是调试的端口,不是项目启动的端口
},

调试指定 js 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "pwa-node",
"request": "launch",
"name": "Launch Program",
"skipFiles": [
"<node_internals>/**"
],
"program": "${workspaceFolder}/test/filelist.js"
}
]
}

使用 nodemon 调试

参考:
https://www.cnblogs.com/little-ab/p/11796952.html

~/.zshrc 文件里添加如下代码

1
2
alias setproxy="export ALL_PROXY=http://127.0.0.1:15236"
alias unsetproxy="unset ALL_PROXY"
1
2
3
4
# 设置代理
setproxy
# 取消代理
unsetproxy

参考

下面列举一些经常使用的快捷键:

Ctrl + L 用于清理终端的内容,就是清屏的作用。其实 clear 命令也有同样效果,但是你不觉得 Ctrl + L 的按键比输入 clear 这五个字母更快速吗?
Ctrl + D 给终端传递 EOF (End Of File,文件结束符),在运行程序时很有用。有些程序我们需要在接收到 EOF 输入时结束,那么这个快捷键就可以派上用场了。比如我们之前演示过,退出 root 用户身份,就可以用 Ctrl + D。如果你在命令行提示符后什么也不输入的情况下直接按下这组快捷键,那么就会关闭当前的终端;
Shift + PgUp 用于向上滚屏,与鼠标的滚轮向上滚屏是一个效果;
Shift + PgDn 用于向下滚屏,与鼠标的滚轮向下滚屏是一个效果。
下面的快捷键在你编辑一条比较长的命令时很有用:

Ctrl + A 光标跳到一行命令的开头。一般来说,Home 键有相同的效果;
Ctrl + E 光标跳到一行命令的结尾。一般来说,End 键有相同的效果;。
Ctrl + U 删除所有在光标左侧的命令字符;
Ctrl + K 删除所有在光标右侧的命令字符;
Ctrl + W 删除光标左侧的一个“单词”,这里的“单词”指的是用空格隔开的一个字符串。例如 -a 就是一个“单词”;
Ctrl + Y 粘贴用 Ctrl + U、 Ctrl + K 或 Ctrl + W “删除”的字符串,有点像“剪切-粘贴”。

参考:
https://www.imooc.com/read/39/article/463

配置

401-7-4
nginx 配置

启动

nginx

停止

nginx -s stop

重载

nginx -s reload

检查配置文件

1
2
nginx -t # 可以查看配置文件所在路径

跨域

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
server{
        listen 5000;
        server_name localhost;
        location = / {
            proxy_pass http://localhost:3000/;
        }
        location /test {
            proxy_pass http://localhost:3000/test;

            #   指定允许跨域的方法,*代表所有
            add_header Access-Control-Allow-Methods *;

            #   预检命令的缓存,如果不缓存每次会发送两次请求
            add_header Access-Control-Max-Age 3600;

            #   带cookie请求需要加上这个字段,并设置为true
            add_header Access-Control-Allow-Credentials true;

            #   表示允许这个域跨域调用(客户端发送请求的域名和端口) 
            #   $http_origin动态获取请求客户端请求的域   不用*的原因是带cookie的请求不支持*号
            add_header Access-Control-Allow-Origin $http_origin;

            #   表示请求头的字段 动态获取
            add_header Access-Control-Allow-Headers 
            $http_access_control_request_headers;

            #   OPTIONS预检命令,预检命令通过时才发送请求
            #   检查请求的类型是不是预检命令
            if ($request_method = OPTIONS){
                return 200;
            }
        }
    }

参考:https://www.cnblogs.com/PengfeiSong/p/12993446.html

导入配置文件

include servers/*;
相对于当前文件

配置多 server

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
server {
listen 80;
        server_name a.com;
        location = / {
            proxy_pass http://localhost:3000/;
        }
}
server {
listen 80;
        server_name b.com;
        location = / {
            proxy_pass http://localhost:8000/;
        }
}
}

快速选择相同项目

Ctrl + D

回退一次选择

Ctrl + U

跳过选中的项目

Ctrl + K

新版 husky 实践

  1. 安装 husky

    1
    npm install -D husky
  2. 在 packgae.json 中添加 prepare 脚本

    1
    2
    3
    4
    5
    {
    "scripts": {
    "prepare": "husky install"
    }
    }

    prepare 脚本会在 npm install(不带参数)之后自动执行。也就是说当我们执行 npm install 安装完项目依赖后会执行 husky install 命令,该命令会创建 .husky/ 目录并指定该目录为 git hooks 所在的目录。

  3. 添加 git hooks,运行一下命令创建 git hooks

    1
    npx husky add .husky/pre-commit "npm run test"

    运行完该命令后我们会看到.husky/目录下新增了一个名为pre-commit的shell脚本。也就是说在在执行git commit命令时会先执行pre-commit这个脚本。pre-commit脚本内容如下:

    1
    2
    3
    4
    #!/bin/sh
    . "$(dirname "$0")/_/husky.sh"

    npm run test

    可以看到该脚本的功能就是执行npm run test这个命令

参考:
https://zhuanlan.zhihu.com/p/366786798