Last active
June 8, 2020 19:19
-
-
Save zzjtnb/36e002bb4d740092a92c92d0eccaf118 to your computer and use it in GitHub Desktop.
【Nodejs】 中的包、npm 、第三方模块 、package.json 以及 cnpm
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ## 一、包与NPM | |
| Nodejs 中除了它自己提供的核心模块外,我们可以自定义模块,也可以使用第三方的 | |
| 模块。Nodejs 中第三方模块由包组成,可以通过包来对一组具有相互依赖关系的模块进行统一管理。 | |
| ### 1.完全符合 CommonJs 规范的包目录一般包含如下这些文件。 | |
| - package.json :包描述文件。 | |
| - bin :用于存放可执行二进制文件的目录。 | |
| - lib :用于存放 JavaScript 代码的目录。 | |
| - doc :用于存放文档的目录。 | |
| ### 2.包的使用 | |
| - 1.在https://www.npmjs.com寻找对应的包 | |
| - 2.在项目中使用 `npm install xxx` | |
| - 3.引入xxx `var xxx=require('xxx')` | |
| ### 3.NPM 介绍 | |
| npm 是世界上最大的开放源代码的生态系统。我们可以通过 npm 下载各种各样的包, | |
| 这些源代码(包)我们可以在 https://www.npmjs.com 找到。 | |
| npm 是随同 NodeJS 一起安装的包管理工具,能解决 NodeJS 代码部署上的很多问题, | |
| 常见的使用场景有以下几种: | |
| - 允许用户从 NPM 服务器下载别人编写的第三方包到本地使用。 | |
| - 允许用户从 NPM 服务器下载并安装别人编写的命令行程序(工具)到本地使用。 | |
| - 允许用户将自己编写的包或命令行程序上传到 NPM 服务器供别人使用。 | |
| ## 二、node查看版本 | |
| `node -v` | |
| 注意是小写的v | |
| ## 三、NPM 命令详解。 | |
| - 1.`npm -v` 查看 npm 版本 注意是小写的v | |
| - 2.`npm install moudleName` 安装模块 | |
| - 3.`npm uninstall moudleName` 卸载模块 | |
| - 4.`npm info moudleName`查看模块的版本 | |
| - 5.`npm list `查看当前目录下已安装的 node 包 | |
| - 6.` npm install moudleName@1.8.0` @1.0.0指定版本安装 | |
| ## 四、package.json | |
| >package.json定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称、版本、许可证等元数据) | |
| - 1、创建 package.json | |
| `npm init` 或者 `npm init -y` | |
| - 2、`package.json` 文件 | |
| ```json | |
| { | |
| "name": "axios", | |
| "version": "1.0.0", | |
| "description": "", | |
| "main": "index.js", | |
| "directories": { | |
| "doc": "doc", | |
| "lib": "lib" | |
| }, | |
| "scripts": { | |
| "test": "echo \"Error: no test specified\" && exit 1" | |
| }, | |
| "keywords": [], | |
| "author": "", | |
| "license": "MIT" | |
| } | |
| ``` | |
| - 3、安装模块并把模块写入`package.json`(依赖) | |
| ```bash | |
| npm install moudleName --save | |
| npm install moudleName --save-dev | |
| ``` | |
| - 4、`dependencies` 与 `devDependencies` 之间的区别? | |
| 使用 `npm install moudleName –save` 自动更新 `dependencies` 字段值; | |
| 使用 `npm install moudleName –save-dev` 自动更新 `devDependencies` 字段值; | |
| `dependencie` 配置当前程序所依赖的其他包. | |
| `devDependencie` 配置当前程序所依赖的其他包,比如一些工具之类的配置在这里. | |
| >不过这只是它们的表面区别。它们真正的区别是,npm自己的文档说**dependencies是运行时依赖**,**devDependencies是开发时的依赖**。即devDependencies 下列出的模块,是我们开发时用的,比如 我们安装 js的压缩包gulp-uglify 时,我们采用的是 “`npm install –save-dev gulp-uglify` ”命令安装,因为我们在发布后用不到它,而只是在我们开发才用到它。dependencies 下的模块,则是我们发布后还需要依赖的模块,譬如像jQuery库或者Angular框架类似的,我们在开发完后后肯定还要依赖它们,否则就运行不了。 | |
| >另外需要补充的是: | |
| 正常使用`npm install`时,会下载dependencies和devDependencies中的模块,当使用`npm install –production`或者注明**NODE_ENV**变量值为**production**时,只会下载dependencies中的模块。 | |
| ```json | |
| "dependencies": { | |
| "ejs": "^2.3.4", | |
| "formidable": "~1.0.17", | |
| "express": "*" | |
| } | |
| ``` | |
| `^`表示第一位版本号不变,后面两位取最新的 | |
| `~`表示前两位不变,最后一个取最新 | |
| `*`表示全部取最新 | |
| ## 五、安装淘宝镜像 | |
| `http://www.npmjs.org npm` 包官网 | |
| `https://npm.taobao.org ` 淘宝 npm 镜像官网 | |
| >淘宝 NPM 镜像是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10 分钟 一次以保证尽量与官方服务同步。 | |
| *我们可以使用我们定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm:* | |
| `npm install -g cnpm --registry=https://registry.npm.taobao.org` |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ## 一、包与NPM | |
| Nodejs 中除了它自己提供的核心模块外,我们可以自定义模块,也可以使用第三方的 | |
| 模块。Nodejs 中第三方模块由包组成,可以通过包来对一组具有相互依赖关系的模块进行统一管理。 | |
| ### 1.完全符合 CommonJs 规范的包目录一般包含如下这些文件。 | |
| - package.json :包描述文件。 | |
| - bin :用于存放可执行二进制文件的目录。 | |
| - lib :用于存放 JavaScript 代码的目录。 | |
| - doc :用于存放文档的目录。 | |
| ### 2.包的使用 | |
| - 1.在https://www.npmjs.com寻找对应的包 | |
| - 2.在项目中使用 `npm install xxx` | |
| - 3.引入xxx `var xxx=require('xxx')` | |
| ### 3.NPM 介绍 | |
| npm 是世界上最大的开放源代码的生态系统。我们可以通过 npm 下载各种各样的包, | |
| 这些源代码(包)我们可以在 https://www.npmjs.com 找到。 | |
| npm 是随同 NodeJS 一起安装的包管理工具,能解决 NodeJS 代码部署上的很多问题, | |
| 常见的使用场景有以下几种: | |
| - 允许用户从 NPM 服务器下载别人编写的第三方包到本地使用。 | |
| - 允许用户从 NPM 服务器下载并安装别人编写的命令行程序(工具)到本地使用。 | |
| - 允许用户将自己编写的包或命令行程序上传到 NPM 服务器供别人使用。 | |
| ## 二、node查看版本 | |
| `node -v` | |
| 注意是小写的v | |
| ## 三、NPM 命令详解。 | |
| - 1.`npm -v` 查看 npm 版本 注意是小写的v | |
| - 2.`npm install moudleName` 安装模块 | |
| - 3.`npm uninstall moudleName` 卸载模块 | |
| - 4.`npm info moudleName`查看模块的版本 | |
| - 5.`npm list `查看当前目录下已安装的 node 包 | |
| - 6.` npm install moudleName@1.8.0` @1.0.0指定版本安装 | |
| ## 四、package.json | |
| >package.json定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称、版本、许可证等元数据) | |
| - 1、创建 package.json | |
| `npm init` 或者 `npm init -y` | |
| - 2、`package.json` 文件 | |
| ```json | |
| { | |
| "name": "axios", | |
| "version": "1.0.0", | |
| "description": "", | |
| "main": "index.js", | |
| "directories": { | |
| "doc": "doc", | |
| "lib": "lib" | |
| }, | |
| "scripts": { | |
| "test": "echo \"Error: no test specified\" && exit 1" | |
| }, | |
| "keywords": [], | |
| "author": "", | |
| "license": "MIT" | |
| } | |
| ``` | |
| - 3、安装模块并把模块写入`package.json`(依赖) | |
| ```bash | |
| npm install moudleName --save | |
| npm install moudleName --save-dev | |
| ``` | |
| - 4、`dependencies` 与 `devDependencies` 之间的区别? | |
| 使用 `npm install moudleName –save` 自动更新 `dependencies` 字段值; | |
| 使用 `npm install moudleName –save-dev` 自动更新 `devDependencies` 字段值; | |
| `dependencie` 配置当前程序所依赖的其他包. | |
| `devDependencie` 配置当前程序所依赖的其他包,比如一些工具之类的配置在这里. | |
| ```json | |
| "dependencies": { | |
| "ejs": "^2.3.4", | |
| "formidable": "~1.0.17", | |
| "express": "*" | |
| } | |
| ``` | |
| `^`表示第一位版本号不变,后面两位取最新的 | |
| `~`表示前两位不变,最后一个取最新 | |
| `*`表示全部取最新 | |
| ## 五、安装淘宝镜像 | |
| `http://www.npmjs.org npm` 包官网 | |
| `https://npm.taobao.org ` 淘宝 npm 镜像官网 | |
| >淘宝 NPM 镜像是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10 分钟 一次以保证尽量与官方服务同步。 | |
| *我们可以使用我们定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm:* | |
| `npm install -g cnpm --registry=https://registry.npm.taobao.org` |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment