Node是一个JavaScript运行环境,很多模块都需要依赖node。npm是随同node安装的包管理工具,node安装完成后,npm也安装完成。
安装
通过包管理器
适用于Linux。由于系统默认包含的nodejs版本较低,因此可通过以下命令更新为较新的版本。
1 2 3 4 5 6
| # 设置为安装14.x版本的nodejs # 更改14为其它数字(如12)即可安装其它版本的nodejs curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
# 安装nodejs sudo apt install nodejs
|
通过nvm
仓库如下。
1 2 3 4 5
| // Mac https://github.com/nvm-sh/nvm
// Windows https://github.com/coreybutler/nvm-windows
|
以Mac为例,在终端输入以下命令安装nvm
。
1 2 3 4 5
| // bash用户 curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
// zsh用户 curl -o- [https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh](https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh) | bash [[ -s $HOME/.nvm/nvm.sh ]] && . $HOME/.nvm/nvm.sh
|
安装完成后在终端输入下列命令以安装node
。
1 2 3 4 5
| // 安装长期支持版本(建议) nvm install --lts
// 安装最新版本 nvm install node
|
通过官方安装包
打开下面官方网站,下载安装包进行安装。
使用
更换下载源
直接更换为淘宝源
在终端执行以下命令。
1
| npm config set -g registry https://registry.npm.taobao.org
|
用nrm切换下载源
在终端执行以下命令安装nrm
,并查看下载镜像源。
1 2
| npm install -g nrm nrm ls
|
用以下命令切换淘宝源。
更新主程序
对于nvm安装
1
| nvm install --lts --latest-npm --reinstall-packages-from=node
|
对于独立程序
1 2
| npm install -g npm npm install -g node
|
更新下载包
1 2 3 4 5 6 7
| npm install -g npm-check # 安装npm-check npm-check # 查看系统插件是否需要升级 npm install -g npm-upgrade # 安装npm-upgrade npm-upgrade # 更新package.json # 在执行npm-upgrade命令后会要求输入yes或者no,直接输入Yes或Y即可 npm update -g # 更新全局插件 npm update --save # 更新系统插件
|
查看安装过的模块
1 2 3 4 5
| // 查看当前项目的依赖模块 npm ls --depth 0
// 查看全局依赖模块命令 npm ls -g --depth 0
|
删除项目缓存
1 2
| npm cache verify // 或npm cache clean --force
|
删除项目所有依赖
代码基础
逻辑运算符
==和!=仅判断外在的值,而不判断类型。===和!==会判断外在的值和类型。
1 2 3
| var a = 1, b = "1"; console.log(a == b); // 输出true console.log(a === b); // 输出false
|
常用包
nodejieba
jieba中文分词库的Nodejs版本。
安装
使用
基本分词
1 2 3
| var nodejieba = require("nodejieba"); var result = nodejieba.cut("南京市长江大桥"); console.log(result);
|
自定义词典
1 2 3 4 5 6 7
| nodejieba.load({ dict: nodejieba.DEFAULT_DICT, hmmDict: nodejieba.DEFAULT_HMM_DICT, userDict: './test/testdata/userdict.utf8', idfDict: nodejieba.DEFAULT_IDF_DICT, stopWordDict: nodejieba.DEFAULT_STOP_WORD_DICT, });
|
词性标注
1 2
| var nodejieba = require("nodejieba"); console.log(nodejieba.tag("红掌拨清波"));
|
词性表如下。
符号 |
词性 |
Ag |
形容词语素 |
a |
形容词 |
ad |
副形词 |
an |
形名词 |
b |
区别词 |
c |
连词 |
dg |
副词语素 |
d |
副词 |
e |
叹词 |
f |
方位词 |
g |
语素 |
h |
前接成分 |
i |
成语 |
j |
简称略语 |
k |
后接成分 |
l |
习用语 |
m |
数词 |
Ng |
名词语素 |
n |
名词 |
nr |
人名 |
ns |
地名 |
nt |
机构团体 |
nz |
其它专有名词 |
o |
拟声词 |
p |
介词 |
q |
量词 |
r |
代词 |
s |
处所词 |
tg |
时间语素 |
t |
时间词 |
u |
助词 |
vg |
动词语素 |
v |
动词 |
vd |
副动词 |
vn |
名动词 |
w |
标点符号 |
x |
非语素字 |
y |
语气词 |
z |
状态词 |
un |
未知词 |
关键词抽取
1 2 3
| var nodejieba = require("nodejieba"); var topN = 4; console.log(nodejieba.extract("升职加薪,当上CEO,走上人生巅峰。", topN));
|
卸载
卸载nvm
在终端输入以下命令,移除nvm。
移除掉~/.profile
,~/.bash_profile
, ~/.zshrc
,~/.bashrc
文件中关于nvm的配置后输入以下命令,让配置文件生效。
1 2
| source ~/.zshrc source ~/.bash_profile
|
卸载node和npm
对于nvm安装
1 2 3 4
| nvm uninstall [版本号]
# 版本通过以下命令查看 nvm list
|
对于独立程序
在终端执行以下命令以卸载。
1 2 3 4 5 6
| sudo npm uninstall npm -g sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.* sudo rm -rf /usr/local/include/node /Users/$USER/.npm sudo rm /usr/local/bin/node sudo rm /usr/local/share/man/man1/node.1 sudo rm /usr/local/lib/dtrace/node.d
|
输入以下命令以确认卸载是否已完成。
常见问题
提示package.json不存在
package.json不存在时,可运行以下命令自动创建。
package.json存在时,运行以下命令以将package.json的模块安装到node-modules文件夹下。
1 2
| npm install // 或 npm install –save-dev
|
打开package.json,在最后大括号前添加以下语句,保存并退出。该语句可修复warning no description / no repository field
的错误。
提示找不到<CoreFoundation/CoreFoundation.h>或其它库文件
对于Mac,在终端输入以下命令即可。
1 2 3 4 5 6
| csrutil disable sudo mount -uw / sudo ln -s "$(xcrun --show-sdk-path)/usr/include" /usr/include export SDKROOT="$(xcrun --show-sdk-path)" echo "export SDKROOT=\"\$(xcrun --show-sdk-path)\"" >> ~/.bash_profile sudo DevToolsSecurity -enable
|
参考教程
How to Install Node.js and npm on CentOS 7
1
| https://linuxize.com/post/how-to-install-node-js-on-centos-7/
|
如何在 Ubuntu 20.04 上安装 Node.js 和 npm
1
| https://developer.aliyun.com/article/760687
|
yanyiwu/nodejieba
1
| https://github.com/yanyiwu/nodejieba
|
nodejs中的==、===、!=、!==的区别
1
| https://blog.csdn.net/gisredevelopment/article/details/12979479
|
jiaba 分词词性标注含义
1
| https://blog.csdn.net/weixin_30521649/article/details/95919189
|