Node.js中的package.json与cnpm命令行工具介绍

一、包

Nodejs 中除了它自己提供的核心模块外,我们可以自定义模块,也可以使用第三方的模块。Nodejs 中第三方模块由包组成,可以通过包来对一组具有相互依赖关系的模块进行统一管理。

完全符合 CommonJs 规范的包目录一般包含如下这些文件。

  • package.json :包描述文件。
  • bin :用于存放可执行二进制文件的目录。
  • lib :用于存放 JavaScript 代码的目录。
  • doc :用于存放文档的目录。

在 NodeJs 中通过 NPM 命令来下载第三方的模块(包)。

https://www.npmjs.com/package/silly-datetime

npm i silly-datetime –save
var sd = require('silly-datetime');
sd.format(new Date(), 'YYYY-MM-DD HH:mm');

二、NPM 介绍

npm 是世界上最大的开放源代码的生态系统。我们可以通过 npm 下载各种各样的包, 这些源代码(包)我们可以在 https://www.npmjs.com找到。

npm 是随同 NodeJS 一起安装的包管理工具,能解决 NodeJS 代码部署上的很多问题, 常见的使用场景有以下几种:

  • 允许用户从 NPM 服务器下载别人编写的第三方包到本地使用。( silly-datetime )
  • 允许用户从 NPM 服务器下载并安装别人编写的命令行程序(工具)到本地使用。(supervisor
  • 允许用户将自己编写的包或命令行程序上传到 NPM 服务器供别人使用。

三、NPM 命令详解

1.npm-v 查看npm版本

npm   -v

2.使用 npm 命令安装模块

npm install

#如安装 jq 模块:

npm install jquery

3.npm uninstall moudleName 卸载模块

npm uninstall ModuleName

4. npm list 查看当前目录下已安装的 node 包 

npm list

5.npm info 模块名称查看模块的版本

npm  info  xxx

6.指定版本安装 npminstall 模块名称@版本号

npm install jquery@1.8.0

四、package.json

package.json定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称、版本、许可证等元数据)

1、创建 package.json

npm init

2、package.json 文件

{
    "name": "test",
    "version": "1.0.0", "description": "test", "main": "main.js", "keywords": ["test"],
    "author": "wade",
    "license": "MIT",
    "dependencies": {
        "express": "^4.10.1"
    },
    "devDependencies": {
        "jslint": "^0.6.5"
    }
}

3、安装模块并把模块写入 package.json(依赖)

npm install   模 块  --save-dev

npm install   模 块  --save

4、dependencies 与 devDependencies 之间的区别?

使用 npm install node_module –save 自动更新 dependencies 字段值;

使用 npm install node_module –save-dev 自动更新 devDependencies 字段值;

dependencie 配置当前程序所依赖的其他包。

devDependencie 配置当前程序所依赖的其他包,只会下载模块,而不下载这些模块的测试和文档框架

"dependencies": {
    "ejs": "^2.3.4",
    "express": "^4.13.3",
    "formidable": "^1.0.17"
}
  • ^表示第一位版本号不变,后面两位取最新的
  • ~表示前两位不变,最后一个取最新
  • *表示全部取最新

五、安装淘宝镜像

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Node.js中package.json中库的版本号(~和^)

    ~和^的区别 最近总是碰到一些问题, 在本地好好的, 在线上就出现了问题, 本地也一直复现不了, 后来把node_modules目录删除了之后, 重新安装, 就在本地复现了这个问题,可以看了git history, 并没有人修改package.json中的版本号,于是认真的了解了一下package.json中库的版本号; ~和^的区别 "babel-loader": "^7.1.1", "body-parser": "~1.15.2&q

  • nodejs npm package.json中文文档

    简介 本文档有所有package.json中必要的配置.它必须是真正的json,而不是js对象. 本文档中描述的很多行为都受npm-config(7)的影响. 默认值 npm会根据包内容设置一些默认值. 复制代码 代码如下: "scripts": {"start": "node server.js"} 如果包的根目录有server.js文件,npm会默认将start命令设置为node server.js. "scripts":

  • 关于Mac下安装nodejs、npm和cnpm的教程

    今天新配置了macbook-pro-所以之前的环境都要重新配置所以记录一下免得以后忘记了 首先是打开node官网 nodejs 然后你会看见如下图片 点击上面的任何一个都可以完成下载,下载完成之后找到文件,一路确定傻瓜式安装,到底然后就OK了. 下面来测试下是否安装成功: 打开Mac下的终端输入:node -v 会出现版本号就说明成功了: 这样就说明安装成功了,下面在终端输入npm -v 如果出来版本号如下图所示: 这样就大功告成了. 但是毕竟npm安装一些东西还是太慢了所以呢建议大家安装cnp

  • 详解Nodejs之npm&package.json

    一直以来,作为前端开发,在公司都是先写好页面,然后再跟后端合作,将数据填入前端页面中,但是偶尔自己闲来无事,也会看一些框架什么的,然后利用框架做个单页面应用啊,app什么的,这时候页面的数据总是一些假数据,而关于数据请求的部分就没办法做(因为没有后台嘛).所以我感觉是时候学习一下node了,这对于我以后要学的webpack,前端工程化等也有一定帮助. 作为前端,因为经常用到gulp,webpack等工具,所以我们最常见到的是npm和package.json,所以先总结一下它们俩. npm 初始化

  • nodejs如何在package.json中设置多条启动命令

    有时候需要在package.json中的scripts设计类似于批处理的多条命令.此时需要使用&&或&操作符来连接多个操作. 比如: "scripts": { "build": "(webpack --config webpack.prod.js) &&➊ (ng build)", "start": "webpack &➋ (ng serve)" }, 如果命

  • 简单了解node npm cnpm的具体使用方法

    一.nodeJs 1.node介绍 nodeJs是基于Chrome v8的js运行环境,简单的说, 就是运行在服务端的 JavaScript.不懂得像PHP.Python或Ruby等动态编程语言又想创建自己的服务(例如:前端程序员),Node.js是一个非常好的选择. 2.node安装.更新 如果你所使用的 node 版本已不再被官方支持(Node 0.4.0.6.0.10 和 iojs 都已不再被官方支持)或者是非稳定版(版本号为奇数,如 0.7.x.0.9.x  等),并且在使用过程中遇到了

  • Node.js中的package.json与cnpm命令行工具介绍

    一.包 Nodejs 中除了它自己提供的核心模块外,我们可以自定义模块,也可以使用第三方的模块.Nodejs 中第三方模块由包组成,可以通过包来对一组具有相互依赖关系的模块进行统一管理. 完全符合 CommonJs 规范的包目录一般包含如下这些文件. package.json :包描述文件. bin :用于存放可执行二进制文件的目录. lib :用于存放 JavaScript 代码的目录. doc :用于存放文档的目录. 在 NodeJs 中通过 NPM 命令来下载第三方的模块(包). http

  • Node.js的HTTP模块、URL模块与supervisor工具介绍

    一.Node.js创建第一个应用 如果我们使用 PHP 来编写后端的代码时,需要 Apache 或者 Nginx 的 HTTP 服务器, 来处理客户端的请求相应.不过对 Node.js 来说,概念完全不一样了.使用 Node.js 时,我们不仅仅在实现一个应用,同时还实现了整个 HTTP 服务器. 1.引入 http 模块 var http = require("http"); 2.创建服务器 接下来我们使用 http.createServer() 方法创建服务器,并使用 listen

  • Node.js利用Net模块实现多人命令行聊天室的方法

    这篇文章介绍的是Node.js利用Net模块实现命令行式的多人聊天室,下面话不多说,来看看详细的介绍吧. 1.net模块基本API 要使用Node.js的net模块实现一个命令行聊天室,就必须先了解NET模块的API使用.NET模块API分为两大类: Server和Socket类.工厂方法. Server类如下图所示: net.Server类可以用来创建一个TCP或本地服务器,继承了EventEmitter. Socket类如下: net.Socket类一般用创建一个socket客户端或者是ne

  • Node.js中出现未捕获异常的处理方法

    前言 Node.js 程序运行在单进程上,应用开发时一个难免遇到的问题就是异常处理,对于一些未捕获的异常处理起来,也不是一件容易的事情. 未捕获异常的程序 下面展示了一段简单的应用程序,如下所示: const http = require('http'); const PORT = 3000; const server = http.createServer((req, res) => { if (req.url === '/error') { a.b; res.end('error'); }

  • Node.js中ES6模块化及Promise对象

    目录 ES6模块化 CommonJS 规范 模块化开发好处 模块化规范划分 ES6模块化开发注意点 ES6 导入导出 Promise对象 使用语法 Promise中的同步异步 Promise 封装 第三方then-fs解决回调地狱 ES6模块化 CommonJS 规范 node.js 遵循了 CommonJS 的模块化规范.其中: 导入其它模块使用 require()方法 模块对外共享成员使用 module.exports 对象 模块化开发好处 模块化开发的好处有很多,其中: 实现了在JS文件中

  • 使用node.js中的Buffer类处理二进制数据的方法

    前言 在Node.js中,定义了一个Buffer类,该类用来创建一个专门存放二进制数据的缓存区.这篇文章就详细介绍了node.js中的Buffer类处理二进制数据的方法,下面话不多说,来看看详细的介绍. 创建Buffer对象 第一种:直接使用一个数组来初始化缓存区 var arr = [0,1,2] var buf = new Buffer(arr) console.log(buf) 执行效果: 第二种:直接使用一个字符串来初始化缓存区 var str = 'hello' var buf = n

  • node.js中get和post接口教程

    目录 接口传参 express写get接口 get无传参的最简单 get有传参 post请求 post传递普通键值对 post传递JSON格式 post接口-form-data文件上传 接口传参 我们使用ajax请求向服务器接口传参,按http协议的约定,每个请求都有三个部分: 请求行: 保存了请求方式,地址,可以以查询字符串的格式附加一部分数据. 请求头:它可以附加很多信息,其中content-type用来约定请求体中保存的数据格式. content-type常见有三种取值: content-

  • 深入理解Node.js中的进程管理

    前言 本文主要对 Node.js 中进程管理相关的东西做一个简单介绍,包括 process 对象.child_process 模块和cluster 模块,详细的 API 可以查看官方文档,下面来看看详细的介绍吧. Process 对象 process 是 Node.js 的一个全局对象,可以在任何地方直接使用而不需要 require 命令加载.process 对象提供了 当前 node 进程 的命令行参数.标准输入输出.运行环境和运行状态等信息. 常用属性 argv process.argv 属

  • Node.js中的异步生成器与异步迭代详解

    前言 生成器函数在 JavaScript 中的出现早于引入 async/await,这意味着在创建异步生成器(始终返回 Promise 且可以 await 的生成器)的同时,还引入了许多需要注意的事项. 今天,我们将研究异步生成器及其近亲--异步迭代. 注意:尽管这些概念应该适用于所有遵循现代规范的 javascript,但本文中的所有代码都是针对 Node.js 10.12 和 14 版开发和测试的. 异步生成器函数 看一下这个小程序: // File: main.js const creat

  • Node.js中readline模块实现终端输入

    目录 1概述 2readline的使用 3示例1:输入输出 4示例2:模拟命令行的输入输出 1 概述 readline是Node.js里实现标准输入输出的封装好的模块,通过这个模块我们可以以逐行的方式读取数据流.使用require("readline")可以引用模块. 使用readline步骤:1.引入:require('readline')2.创建readline对象(接口)3.调用接口的相关方法4.监听和处理readline事件 示例代码: // 引入readline模块 cons

随机推荐