现代开发项目,其实和过去开发项目有很大的区别。

就像盖房子一样,以前最早的时候,都是自己砍树,一点点从头开始做起。但到了现代社会,很多东西都直接有成品了。你所需要的只是在市场中挑选自己合适的产品,把各个产品都搬回家。然后根据说明书,把东西组装起来,一个项目就完成了。

对于 Node 开发者来说,这个市场就是 npm 了。

盖房子与开发 Node 项目的共同点

盖房子 开发 Node.js 项目
打地基 安装 Node.js
房屋的基本框架结构 Express-cli、Vue-cli、create-react-app 等建项目
购买各种家具 npm 安装各种包
摆放家具、装修 完善程序逻辑,将各种包整合起来

盖房子咱们不在行,但搞起项目开发来,你只要掌握了 npm 是怎么玩的。那就是npm在手,天下我有啊。

使用包的实际过程

现在来看一下,如何在真实项目中使用 npm包

例如我们现在需要一个给日期做格式化的功能,那么最流行的包是 Moment.js。咱们就可以在 npm 网站上搜索 moment

进来后,右侧给出了安装命令和官网地址。因为这个包功能比较多,所以这里没有给出具体的使用方法。那咱们点进去 moment.js 官网 看看。

新建项目

在实际进行操作之前,先要来建一个项目文件夹

$ mkdir -p ~/Developer/Node/try_npm
$ cd ~/Developer/Node/try_npm

这次的项目放在了 try_npm 这个目录下,

Tips: 如果是 Windows 用户,请直接在任意目录 -> 右键 -> 新建文件夹 -> 命名为try_npm

装包

$ npm init -y
$ cnpm install moment --save

npm init -y 来创建一个 package.json 文件,这个文件中会记录被安装的包的包名以及版本号,在 Node.js 项目中,这个文件是必须要有的。

然后运行 npm install 具体包名 --save 来安装需要的包。安装完之后,可以看到 node_modules 被自动创建了,moment 这个包就被存放到了这个文件夹里面。

查看 package.json 文件,可以看到里面的 dependencies 出现了刚才安装的包名和版本号。

{
  "dependencies": {
    "moment": "^2.24.0"
  }
}

这里的记录非常重要,如果 node_modules 文件夹删掉了,或者别人给你的项目源码里没有 node_modules 文件夹,你只需要运行

$ cnpm install

就可以将 node_modules 重新建出来,并自动下载安装相关的依赖包。

index.js

新建一个 index.js 文件

var moment = require('moment');
moment.locale('zh-cn');
var time = moment().format('LL'); 
console.log(time);

下面来修改 index.js 中的内容。require 刚刚安装的包。然后调用里面的方法,设置语言格式为中文,格式化时间为年 月 日,然后打印出来。运行 node index.js 可以看到 当前时间 正确输出了。

$ node index.js
2019年6月19日

总结

这节咱们瞄准的是 npm,这个世界上最大的可复用代码的仓库。主要内容就是这些,最后把最重要的几个点再提一下。

  • 第一,npm 存在的目的是避免 JS 开发者重复造轮子,让大家的劳动成果可以共享。
  • 第二,npm 包安装后,默认会将包名和版本号记录在 package.json 中。
  • 第三,实际下载安装的包文件,默认存在根目录的 node_modules 中。可以在项目代码中直接通过 require 语句找到使用它。

npm 命令详解

命令或参数 说明 适用
cnpmnpm 主要区别就是cnpm走的是淘宝镜像,速度更快一些。
installi install 可以简写成 i,例如 cnpm i moment
--save-S --save 可以简写成 -S
cnpm 中,只有使用 -S 参数安装的包才会添加到 dependencies 列表。
如果掉了 -S 参数,dependencies 中,不会有相关记录的。
大多数情况,也就是项目中所需要的包,你都应当带上 -S
--save-dev-D --save-dev 可以简写成 -D
会在 package.json 中的 devDependencies 里有记录。
NODE_ENV 变量值为 production 或运行 npm install --production 时,不会安装依赖包。
适合安装一些只有开发中需要的,而实际项目部署运行中不需要的包。
--global-g --global 可以简写成 -g
这个是全局安装package.json 和本地 node_modules 中都不会有记录。
适合安装一些系统级的命令工具,例如 express-clivue-cli 等。

这就是安装一个 npm 包,并且在项目中使用它的全过程了。

已添加到喜欢了