07-----nodejs 中 npm的使用

npm是什么?

简单的说,npm就是JavaScript的包管理工具。类似Java语法中的maven,gradle,python中的pip。

1. 安装配置

https://nodejs.org/en/

https://nodejs.org/dist/v17.9.1/    #下载具体地址

下载linux完整包,可以直接使用。

wget https://nodejs.org/dist/v17.9.1/node-v17.9.1-linux-x64.tar.gz

配置

tar zxvf node-v17.9.1-linux-x64.tar.gz 
# 把解压好的放在固定位置
mv node-v17.9.1-linux-x64 /usr/local/node

ln -s /usr/local/node/bin/node /usr/bin/node
ln -s /usr/local/node/bin/npm /usr/bin/npm


node -v
npm -v

npm install npm@latest -g     //更新,暂时不做

yum方式安装

 

## 
yum-y install epel-release
yum install nodejs npm -y

 

npm初始化

在去下载包之前,首先先让当前项目的包进行初始化操作,执行命令:

运行这个命令后,它会询问一些关于包的基本信息,根据实际情况回答即可。如果不喜欢这种方式,可以使用npm init --yes命令直接使用默认的配置来创建package.json文件,最后根据需要修改创建好的package.json文件即可。

{
  "name": "01-studynpm",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

 主要字段的含义如下:

  • name: 模块名, 模块的名称有如下要求:

    • 全部小写
    • 只能是一个词语,没有空格
    • 允许使用破折号和下划线作为单词分隔符
  • version: 模块版本信息

  • description:关于模块功能的简单描述,如果这个字段为空的话,默认会从当前目录的READMD.mdREADME文件读取第一行内容作为它的默认值。

  • main: 模块被引入后,首先加载的文件,默认为index.js

  • scripts: 定义一些常用命令入口

关于最后一个英文的意思,我们可以证明,当我执行npm init之后,会自动的生成package.json的文件。

 

安装模块

使用npm install会读取package.json文件来安装模块。安装的模块分为两类
dependenciesdevDependencies,分别对应生产环境需要的安装包和开发环境需要的安装包。

同样在安装模块的时候,可以通过指定参数来修改package.json文件,以jquery和webpack做例子

npm install jquery --save
npm install webpack --save-dev

执行以上命令,便可以安装对应的包到执行命令的当前目录,并创建一个node_modules的文件夹,然后把需要安装的安装包下载到里面。

打开package.json文件会发现:

下载不同版本的模块

npm install jquery@2.0.1 --save

 卸载模块

npm uninstall jquery --save

使用cnpm(淘宝镜像)国内镜像。

使用npm下载依赖时,由于是从国外的网站上下载内容,所以可能经常会出现不稳定的情况,所以需要下载cnpm代替npm,cnpm是国内淘宝的做的,在国内使用稳定。

1. 下载cnpm

npm install -g cnpm --registry=https://registry.npm.taobao.org
ln -s /usr/local/node/bin/cnpm /usr/local/bin/

2. 使用cnpm

cnpm install jquery --save

3. 配置npm为cnpm镜像

npm config set registry https://registry.npm.taobao.org
# 查看是否切换成功
npm config get registry
 

闭坑

如果node版本高于系统。则报错版本过低。

# 查看版本

 查看系统的版本没有支持到3.4.21 以上的版本。

strings /usr/lib64/libstdc++.so.6 | grep GLIBC
无特殊要求,不建议升级系统的版本采用过高的node。选择匹配的弄得版本安装即可。


 

posted @ 2018-07-23 16:07  王竹笙  阅读(124)  评论(0编辑  收藏  举报