NPM 原理与使有

npm 就是全球的js软件包仓库,任何人都可以将自己的符合NPM要求的js软件提交上去,供全球的人进行下载使用,如(jquery,boostact等,没有NPM你只能自己网上搜索并下载使用,有了NPM就可以用NPM命令下载相关的js包和这个js包的依赖js包了,要不然你要一个个依赖从网上搜索下载)


这个工具就是程序员 Isaac Z. Schlueter用 JavaScript (运行在 Node.js 上)写的 npm,全称是 Node Package Manager(所以要安装node.js,后来与node.js合作,所以安装node.js就有了NPM,但国内不能访问所以有了CNPM(淘宝的镜像),可以理解为一个国内的NPM(内容由淘宝不断进行与NPM同步))


包,就是一个目录,里面有package.json、果js文件


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

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


npm 由三个独立的部分组成:
网站(网站 是开发者查找包(package)、设置参数以及管理 npm 使用体验的主要途径。)

注册表(registry)(注册表 是一个巨大的数据库,保存了每个包(package)的信息。)

命令行工具 (CLI(CLI(command-line interface,命令行界面)))(CLI 通过命令行或终端运行。开发者通过 CLI 与 npm 打交道。)


相关命令:
安装一个包
npm install <package_name>
上述命令执行之后将会在当前的目录下创建一个 node_modules 的目录(如果不存在的话),然后将下载的包保存到这个目录下。

在本地目录中如果没有 package.json 这个文件的话,那么最新版本的包会被安装。
如果存在 package.json 文件,则会在 package.json 文件中查找针对这个包所约定的语义化版本规则,然后安装符合此规则的最新版本。

npm install会根据package.json的依懒进行相关包的下载


实例:
创建一个名为 index.js 的文件,并保存如下代码:
// index.js
var lodash = require('lodash'); //使用已安装的包(require)

var output = lodash.without([1, 2, 3], 1);
console.log(output);
运行 node index.js 命令。应当输出 [2, 3]。


package.json file
npm init (生成一个package.json文件)
npm init --yes (Create a default package.json)

{
"name": "my_package", //js包名
"description": "",
"version": "1.0.0",
"main": "index.js",//main属性指定了程序的主入口文件。意思是,如果你的模块被命名为foo,用户安装了这个模块并通过require("foo")来使用这个模块,那么require返回的内容就是main属性指定的文件中 module.exports指向的对象。
"scripts": { //scripts属性是一个对象,里边指定了项目的生命周期个各个环节需要执行的命令。key是生命周期中的事件,value是要执行的命令。
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": { //指定一个代码存放地址,对想要为你的项目贡献代码的人有帮助。
"type": "git",
"url": "https://github.com/ashleygwilliams/my_package.git"
},
"keywords": [],//一个字符串数组,方便别人搜索到本模块
"author": "", //"author"是一个码农,
"license": "ISC",//你应该为你的模块制定一个协议,让用户知道他们有何权限来使用你的模块,以及使用该模块有哪些限制。
"bugs": {
"url": "https://github.com/ashleygwilliams/my_package/issues" //填写一个bug提交地址或者一个邮箱,被你的模块坑到的人可以通过这里吐槽
},
"homepage": "https://github.com/ashleygwilliams/my_package" //这个项目主页url和url属性不同,如果你填写了url属性,npm注册工具会认为你把项目发布到其他地方了,获取模块的时候不会从npm官方仓库获取,而是会重定向到url属性配置的地址。
}


scripts,就是定义一些运行脚本,就输入npm run XXX时,就运行XXX对应的指令(如node.js指令)

npm package.json属性详解
[url]https://www.cnblogs.com/tzyy/p/5193811.html[/url]


更新本地安装的包
package.json 文件所在的目录中执行 npm update 命令。
执行 npm outdated 命令。不应该有任何输出。


卸载本地安装的包
npm uninstall <package>:
如需从 package.json 文件中删除依赖,需要在命令后添加参数 --save:

如果你将安装的包作为 "devDependency"(也就是通过 --save-dev 参数保存的),那么 --save 无法将其从 package.json 文件中删除。所以必须通过 --save-dev 参数可以将其卸载。

列出所有的包
npm list


全局包命令
npm install -g <package>
npm update -g <package>
npm update -g.
npm outdated -g --depth=0.
npm uninstall -g <package>
npm list


创建 Node.js 模块
Node.js 模块是一种可以发布到 npm 的包。
创建 package.json 文件是第一步。
如果使用默认值,文件名是 index.js。

在index.js文件中,添加一个函数,作为 exports对象的一个属性。这样,require 此文件之后,这个函数在其他代码中就可以使用了。
exports.printMsg = function() {
console.log("This is a message from the demo package");
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jie310600

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值