dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2155
  • 铜币12810枚
  • 威望5719点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
阅读:518回复:1

[node] 包管理器 NPM

楼主#
更多 发布于:2018-02-14 10:39
什么是 Node.js ?
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。

有什么特性?
Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。

如何安装 Node.js ?
推荐使用 docker 创建一个 Node.js 环境,详细请参考这里;

什么NPM
NPM (node package manager) 是 Node.js 的包管理器,是全球最大的开源库生态系统,通过 NPM 可以找到大量优秀的第三方模块,也可以上传并共享自己的模块,更重要的是 NMP 还可以帮助解决依赖关系,等等;
由于新版的 Node.js 已经集成了 npm,可以通过输入 "npm -v" 来查看版本 :
npm -v
5.6.0

常用命令
0. 搜索模块
npm search express | head -n2
NAME    | DESCRIPTION    | AUTHOR    | DATE       | VERSION  | KEYWORDS                                                
express    | Fast,…    | =hacksparrow…    | 2017-10-10 | 4.16.2   | express framework sinatra web rest restful router app api

1. 安装模块
# express 是常用的 Node.js web 框架模块
npm install express
npm WARN saveError ENOENT: no such file or directory, open '/root/package.json'
...省略
+ express@4.16.2
added 49 packages in 10.562s

# 安装好的 express 模块就放在了工程目录下的 node_modules 目录
ls ~/node_modules/express/
History.md    LICENSE       Readme.md     index.js      lib           package.json

2. 全局安装与本地安装
npm 的包安装分为本地安装(local)、全局安装(global)两种,

2.1 本地安装
    a. 将安装包放在 ./node_modules 下(运行 npm 命令时所在的目录),如果没有 node_modules 目录,会在当前执行 npm 命令的目录下生成 node_modules 目录。
    b. 可以通过 require() 来引入本地安装的包。

2.2 全局安装
    a. 将安装包放在 /usr/local 下或者你 node 的安装目录。
    b. 可以直接在命令行里使用。

# 尝试使用全局方式安装 express
npm -g install express
+ express@4.16.2
added 49 packages in 7.871s
# 安装的目录
ls /usr/local/lib/node_modules/express/
History.md    LICENSE       Readme.md     index.js      lib           node_modules  package.json

3. 查看安装信息
npm list express -g
/usr/local/lib
`-- express@4.16.2

4. 模块信息文件
package.json 位于模块的目录下,用于定义包的属性。看下 express 包的 package.json 文件
head /usr/local/lib/node_modules/express/package.json
{
  "_from": "express",
  "_id": "express@4.16.2",
  "_inBundle": false,
  "_integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=",
  "_location": "/express",
  "_phantomChildren": {},
  "_requested": {
    "type": "tag",
    "registry": true,

5. 更新模块
npm update express -g

6. 卸载模块
npm uninstall express -g
removed 49 packages in 0.932s

7. 更多命令
请使用 npm --help 或者 参考在线文档
http://www.runoob.com/nodejs/nodejs-npm.html
https://www.npmjs.com.cn/getting-started/what-is-npm/
 
扩展
如何使用 docker 创建 Node.js 容器?
如何使用 Dockerfile 设计一个适合自己项目的(自定义) Node.js 镜像?
如何使用 docker-compose 编排 Node.js 应用?
Node.js API

#
dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2155
  • 铜币12810枚
  • 威望5719点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
沙发#
发布于:2018-03-13 14:54
package.json 文件
介绍
package.json 文件非常重要,管理本地安装 npm 包的最好方式就是创建 package.json 文件。

一个 package.json 文件可以有以下几点作用:
    作为一个描述文件,描述了你的项目依赖哪些包
    允许我们使用 “语义化版本规则”(后面介绍)指明你项目依赖包的版本
    让你的构建更好地与其他开发者分享,便于重复使用

如何创建 package.json  文件
使用 npm init 即可在当前目录创建一个 package.json ,如果嫌回答这一大堆问题麻烦,可以直接输入 npm init --yes 跳过回答问题步骤,直接生成默认值的 package.json 文件

Package.json 属性说明
    name - 包名。
    version - 包的版本号。
    description - 包的描述。
    homepage - 包的官网 url 。
    author - 包的作者姓名。
    contributors - 包的其他贡献者姓名。
    dependencies - 依赖包列表。如果依赖包没有安装,npm 会自动将依赖包安装在 node_module 目录下。
    repository - 包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上。
    main - main 字段指定了程序的主入口文件,require('moduleName') 就会加载这个文件。这个字段的默认值是模块根目录下面的 index.js。
    keywords - 关键字
游客

返回顶部