npm

npm换源

1
2
3
4
# 不是 https://www.npmjs.com/ 这个会导致登录失败
$ npm config set registry https://registry.npmjs.com
$ npm config set registry https://registry.npm.taobao.org
$ npm config set registry http://mirrors.cloud.tencent.com/npm/

CDN

关于 cdn.jsdelivr.net 挂了:

将:https://cdn.jsdelivr.net/npm

更换为:https://unpkg.com

国内镜像源:https://unpkg.zhimg.com/

npm相关设置

1
2
3
4
5
6
7
8
9
10
11
$ npm config ls				# 查看npm设置
$ npm config get prefix # 获取npm包安装路径
$ npm config set prefix # 设置npm包安装路径
$ npm config get cache # 获取npm缓存
$ npm config set cache # 设置npm缓存
$ npm root -g # 查看npm全局路径的根目录

$ npm set init-author-name "细粒丁" # 设置初始化作者名
$ npm set init-author-email 'Your email' # 设置初始化作者邮箱
$ npm set init-author-url 'http://yourdomain.com' # 设置初始化作者地址
$ npm set init-license "MIT" # 默认ISC # 设置初始化开源协议

其他命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ npm install <package-name>			# 安装一个包
$ npm install <package-name>@latest # 更新依赖包到最新版本
$ npm install <package-name>@<版本号> # 更新依赖包到指定版本

$ npm info <package-name> version # 查看当前最新版本
$ npm info <package-name> versions # 查看所有版本

$ npm view <package-name> version # 查看当前最新版本
$ npm view <package-name> versions # 查看所有版本

$ npm adduser # 添加/注册一个用户
$ npm login # 登录
$ npm publish # 发包
$ npm whoami # 查看当前登录的帐号
$ npm unpublish <package-name> --force # 撤销一个已发布的包
$ npm deprecate <package-name> [@版本] "描述" # 删除一个已发布的包

发版

详情官方发版文档

  1. 创建文件夹(文件夹名即为你的包名)

  2. 进入文件夹

  3. 初始化包,并生成package.json

  4. 编写好文件,及其package.json中的相关信息(如名称、版本号、入口文件、描述等)

  5. 包使用export导出,本地通过 require 引入测试

  6. —— 确保能正常使用则继续(下面则正式发包)——

  7. 换源,将国内源换成 npm官网的源

  8. 登录帐号

  9. 发版 publish

  10. npm install 自己的包名,进行测试

  11. 添加 README.md 文件

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
34
# 创建文件夹(文件夹名即为你的包名)
mkdir test-directory

# 进入文件夹
cd test-directory

# 初始化包,并生成package.json
# -y 表示全部默认
npm init [-y]

# 换源
npm config set registry https://registry.npmjs.com

# 登录帐号
npm login

# 发版
npm publish

# npm 安装自己的包,进行测试
npm install test-directory

# ------------------------------------
# 额外的:

# 撤销包
npm unpublish <package-name> --force # 即可从 npm 删除已发布的包。
# 注意:
# npm unpublish 命令只能删除 72 小时以内发布的包
# npm unpublish 删除的包,在 24 小时内不允许重复发布

# 删除包
npm deprecate <package-name> [@版本] "描述"

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// package.json 文件说明
{
"name": "test-directory", // 包名,跟文件夹名称一样
"version": "0.0.1", // 版本号
"description": "将汉语转换成拼音", // 功能描述
"main": "./lib/index.js", // 入口文件
"scripts": { // 支持的脚本
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [ // 关键字,有助于人们使用npm search搜索时候发现你的项目
"汉语",
"拼音"
],
"git respository": // "git 资源库地址"
"author": "细粒丁", // 作者
"license": "MIT" // 开源协议,默认ISC
}




设置环境变量后,全局安装的包,require(‘’)提示报不存在:

  1. 重启终端

  2. 重启客户端

  3. 检查环境变量是否存在 NODE_PATH,没有 则在系统变量添加 NODE_PATH: npm root -g 的路径

  4. 若是install后 命令不可用,如hexo、webpack,则检查环境变量是否 添加了 npm config get prefix 的路径




一键升级所有依赖的插件:

1
2
3
4
5
6
7
8
9
# 安装 npm-check-updates
$ npm install -g npm-check-updates

# 检查当前项目中有没有哪些依赖包可更新(简写ncu)
$ npm-check-updates

# 更新package.json
# 使用场景:真正的依赖包还没有下载下来,所以需要删除 node_modules 重新 install
$ ncu -u



1. webpack包:

1
2
3
4
5
6
$ npm install --save-dev webpack
$ npm install --save-dev webpack-cli # 4.x版本的

$ npm install --save-dev style-loader css-loader # 加载 CSS
$ npm install --save-dev file-loader # 加载图片
$ npm install --save-dev csv-loader xml-loader # 加载数据



2. express 获取post中的数据

1
$ npm install --save body-parser
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

var express = require('express')
// 引包
var bodyParser = require('body-parser')

var app = express()

// 配置body-parser
// 只要加入这个配置,则在req请求对象上会多出来一个属性:body
// 也就是说可以直接通过req.body来获取表单post请求数据
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))

// parse application/json
app.use(bodyParser.json())

参考




3. 跨域 & 不默认请求网页图标

1
2
3
4
5
6
7
8
9
10
response.writeHead(200, {
"Content-Type": "application/json; charset=utf-8",
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Headers": "*",

"x-frame-options":"deny",
"x-content-type-options": "nosniff",
"x-xss-protection": "1",
"content-security-policy": "default-src 'none'", // 不请求网页图标 favicon.ico
});



4. forever

解决 node.js 后台服务器无操作自动断开连接

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 全局安装 forever
$ npm install -g forever

# index.js是你要启动的js文件
$ forever start index.js

# 会列出forever正在运行的服务脚本
$ forever list

# 停止服务运行
$ forever stop index.js

# 查看帮助信息
$ forever --help

启动

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 最简单的启动方式
$ forever start ./index.js

# 指定forever日志输出文件,默认路径~/.forever
$ forever start -l forever.log ./index.js

# 需要注意,如果第一次启动带日志输出文件,以后启动都需要加上 -a 参数,forever默认不覆盖原文件
$ forever start -l forever.log -a ../index.js

# 指定node.js应用的控制台输出文件和错误信息输出文件
$ orever start -o out.log -e err.log ./index.js

#监听当前目录下文件改动,如有改动,立刻重启应用,不推荐的做法!如有日志文件,日志文件是频繁更改的
$ forever start -w ./index.js

不太可靠的nohup

1
$ nohup python3 github-calendar.py >> ./log/github-calendar.out 2>&1 &