欢迎来真孝善网,为您提供真孝善正能量书籍故事!

深入理解npm:从基本使用到cnpm的探讨

时间:11-17 现代故事 提交错误

1. 背景介绍

(一)什么是npm

npm(node package manager)是nodejs的包管理器,用于node插件管理(包括安装、卸载、依赖管理等)。 NPM是随NodeJS一起安装的包管理工具,可以解决NodeJS代码部署中的很多问题。这是Node成功的重要原因之一。常见的使用场景包括以下几种:

允许用户从NPM服务器下载别人编写的第三方包供本地使用。

允许用户从NPM服务器下载并安装他人编写的命令行程序供本地使用。

允许用户将自己编写的包或命令行程序上传到NPM服务器供其他人使用。

由于新版本的nodejs集成了npm,所以之前也安装了npm。也可以通过输入“npm -v”来测试安装是否成功

为什么我们需要包管理工具?因为当我们在Node.js 上开发时,我们使用了大量别人编写的JavaScript 代码。如果我们想使用别人写的包,每次都要根据名字去官网搜索,下载代码,解压,然后使用,非常繁琐。于是一个中心化的管理工具就应运而生了:大家把自己开发的模块打包放到npm官网上。如果你想使用它们,你可以直接通过npm 安装它们并使用它们,而不必担心代码存在于哪里或应该下载到哪里。

更重要的是,如果我们要使用模块A,而模块A依赖于模块B,模块B又依赖于模块X和模块Y,npm可以根据依赖关系下载并管理所有依赖包。否则,我们自己手动管理,既麻烦又容易出错。

(2)什么是cnpm?

由于npm安装插件是从国外服务器下载的,受网络影响较大,可能会导致异常。如果npm服务器在中国那就太好了,所以我们很高兴分享的淘宝团队做到了这一点。来自官网:“这是一个完整的npmjs.org镜像,你可以用这个代替官方版本(只读)。同步频率目前为每10分钟一次,以确保与官方服务同步可能的。”

2.知识分析

npm常用命令

1. npm install moduleNames:安装Node 模块

安装完成后会生成一个node_modules目录,该目录下是安装的node模块。

Node的安装分为全局模式和本地模式。

通常它将在本地模式下运行,并且该包将安装到应用程序代码本地的node_modules 目录中。

在全局模式下,Node 包将安装在Node 安装目录的node_modules 下。

全局安装命令是$npm install -g moduleName。

学习使用$npm set global=true 来设置安装模式。 $npm get global 可以查看当前使用的安装模式。

例子:

npm 安装快速

默认情况下将安装最新版本的express。也可以通过在末尾添加版本号来安装指定版本,如npm installexpress@3.0.6

npm 安装名称-g

将包安装到全局环境中

但是代码中并没有办法直接通过require()来调用全局安装的包。全局安装用于命令行使用。就像全局安装vmarket后一样,可以直接在命令行中运行vm命令。

这里的require()是node.js的内置函数,用于引入其他模块,以便在代码中调用该模块的函数和变量。默认情况下,node.js 会在NODE_PATH 以及js 所在当前项目目录下的node_modules 文件夹中搜索模块。

npm 安装名称--save

安装的同时,将信息写入package.json中的项目路径中。如果有package.json文件,可以直接使用npm install方法根据dependency配置安装所有依赖包。这样代码提交到github的时候就不需要提交node_modules了。这个文件夹。

npm root:查看当前包的安装路径

npm root -g:查看全局包安装路径

npm -v:查看npm安装的版本

npm list --depth=0:查看所有高级npm模块

npm list --depth=0 -global:查看所有全局安装的模块

为什么要保存至package.json?

由于节点插件包很大且版本复杂,如果不添加包信息,模块之间的依赖变得非常困难。将配置信息写入package.json并添加到版本管理中。其他开发者可以相应下载。 (在命令提示符下执行npm install,会根据package.json下载所有需要的包)。

每个项目的根目录下一般都有一个package.json文件,定义了项目所需的各种模块,以及项目的配置信息(如名称、版本、许可证等元数据)。 npm install命令会根据这个配置文件自动下载需要的模块,也就是配置项目所需的运行和开发环境。

使用npm卸载插件:npm uninstall name [-g] [--save-dev] PS:不要直接删除本地插件包

使用npm更新插件:npm update name [-g] [--save-dev]

更新所有插件:npm update [--save-dev]

查看npm帮助:npm帮助

查看当前目录已安装的插件:npm list

PS:npm插件安装流程:从http://registry.npmjs.org下载对应的插件包(网站服务器位于国外,所以下载经常缓慢或异常),解决办法是cnpm

cnpm简介:

官网:http://npm.taobao.org

安装:从命令提示符运行npm install cnpm -g --registry=https://registry.npm.taobao.org

注意:安装后最好检查版本号cnpm -v 或关闭命令提示符重新打开。如果安装后直接使用可能会出现错误。

PS:cnpm的用法和npm一模一样,只不过执行命令时npm改为cnpm。

Package.json属性说明:

name - 包名称。

version - 包的版本号。

描述- 包的描述。

主页- 包的官方网站url。

作者- 包作者的姓名。

贡献者- 包的其他贡献者的姓名。

依赖项- 依赖包列表。如果没有安装依赖包,npm会自动在node_module目录下安装依赖包。

存储库- 存储包代码的位置类型,可以是git 或svn。 git 可以在Github 上。

main - main 字段是一个模块ID,指向程序的主要项目。也就是说,如果您的包名为express,并且用户安装了它,则需要("express")。

关键词-关键词

3. 常见问题解答

如何安装npm?

4.解决方案

1、去nodejs官网下载nodejs,https://nodejs.org/en/。建议下载稳定版本。下载后,运行安装。安装完成后,在cmd中输入node -v,检查是否安装成功。如果显示版本号则说明安装成功。

2.接下来我们尝试输入npm -v

还有一个版本号。其实nodejs自带了npm,所以我们不需要另外安装。接下来我们需要配置npm的全局模块的存储路径和缓存路径。例如,如果我想将上述两个文件夹放在NodeJS的主目录中,我会在NodeJs下创建“node_global”和“node_cache”两个文件。文件夹。我们只要在cmd中输入两行命令即可:

npm 配置集前缀"D:Program Filesnodejsnode_global"

npm 配置集缓存"D:Program Filesnodejsnode_cache"

下一步非常关键,我们需要设置系统变量。转到我的电脑属性高级环境变量。在系统变量下新建“NODE_PATH”,输入“D:Program Filesnodejsnode_globalnode_modules”

5. 编码实践

6.拓展思维

cnpm 存在哪些问题?

1. cnpm仓库只是npm仓库的一个副本。它不承担发布工作,因此如果使用cnpmpublish 命令,将会失败。

2、不仅publish会执行失败,其他需要用户注册(npm adduser)或者修改包状态的命令也无法与cnpm一起使用。

7. 参考文献

参考1:npm模块安装机制介绍

参考2:开发人员对npm不满意并取消发布了所有模块

8.更多讨论

npm 和Bower 有哪些相同点和不同点?

问:bower 和npm 有什么异同?

npm 是Node.js 的包管理器。用于下载安装node js的第三方工具包。也可以用来发布自己开发的工具包。 Bower是一个前端库管理工具,可以管理一些js库,比如jQuery、bootstrap等。

Q: 全局安装和本地安装有什么区别?

由于采用全局模式安装,因此该软件包可供所有程序使用。无法进行本地安装。

默认情况下,npm 会将包安装到当前目录中。这体现了npm不同的设计理念。喜欢

如果全局安装该包,可以提高程序的复用程度,避免相同内容的重复。

副本,但缺点是很难处理不同版本的依赖关系。如果将软件包安装到当前目录中,

也就是说,在本地,不会出现不同程序依赖不同版本包的冲突问题,同时也会减少

这减少了包作者的API兼容性压力,但缺点是同一个包可能会被安装多次。

本地安装方法是输入命令:npm install gulp或者npm install gulp --save-dev等。参数--save-dev表示将你的安装包信息写入package.json文件的devDependencies字段中。该包安装在指定项目的node_modules文件夹中。

本地安装后,可以直接通过require()引入项目的node_modules目录下的模块。

Q: 为什么全局安装后还需要本地安装?

1、js示例代码中,默认情况下node.js会在NODE_PATH以及当前js项目下的node_modules文件夹中搜索模块。因此,如果只是全局安装,则无法通过require()直接引用该模块。您需要手动解决包路径配置问题。当然,你也可以将全局安装的node_modules文件夹复制到项目中。您还可以选择将NODE_PATH 环境变量设置为C:Program Filesnodejs。

2. 软件包更新管理困难。你可能需要对各个包进行重命名,如gulp@3.8.1、gulp@3.9.1.以便区分不同的项目并使用指定的包来保证模块之间的一致性。相互依赖(这个下面会介绍)区分各个项目的正常运行

PPT连接:

PPT

视频链接

undefined_腾讯视频如果这篇文章对您有帮助,让您对修真学院的免费在线学习感兴趣,可以通过我的链接注册成为会员,这样我就可以获得学分(兑换学分),延长学习时间:

用户评论

剑已封鞘

终于找到怎么使用 npm 了!一直很想了解这个东西。

    有5位网友表示赞同!

呆萌

我一直用的 cnpm ,没听说过 npm 诶,这两个有什么区别?

    有5位网友表示赞同!

封锁感觉

这篇文章看起来挺详细的,我正好要学习如何使用 npm 的。

    有14位网友表示赞同!

盲从于你

npm 这么好用,确实应该好好学习一下它的用法啊!

    有17位网友表示赞同!

微信名字

看了标题感觉很有用,我最近在开发时遇到一些问题,可能可以用 npm 解决的?

    有17位网友表示赞同!

嗯咯

cnpm 和 npm 是什么关系?这两者都是用来管理软件包的吗?

    有10位网友表示赞同!

服从

我一直想了解一下这些工具的使用方法,现在终于有机会了!

    有18位网友表示赞同!

一样剩余

我以前用的 yarn,现在感觉 npm 也不错,要试试看这个教程。

    有12位网友表示赞同!

心已麻木i

学习一下 npm 的技能,也许能让我开发更快速高效的代码!

    有13位网友表示赞同!

执妄

文章讲得真细致,感觉很容易理解。感谢分享!

    有15位网友表示赞同!

喜欢梅西

希望能涵盖一些cnpm 的使用技巧,比如怎么配置和管理。

    有13位网友表示赞同!

西瓜贩子

我觉得学习 npm 是非常必要的技能,特别是对于前端开发人员来说。

    有13位网友表示赞同!

冷青裳

期待这个教程能帮助我更好地掌握 npm 和 cnpm 的使用方法!

    有6位网友表示赞同!

水波映月

以前用的是手动查找包然后下载安装,现在想想真是太麻烦了,npm 感觉好高级啊!

    有15位网友表示赞同!

陌離

学习一下这些工具的使用方法,可以让我在开发过程中更高效地工作吧。

    有17位网友表示赞同!

抓不住i

cnpm 是哪个国家的产物?

    有9位网友表示赞同!

景忧丶枫涩帘淞幕雨

这篇文章好像能解决我之前遇到的一些关于 package 的问题!

    有12位网友表示赞同!

揉乱头发

感觉这个教程应该很权威,因为我之前看到的很多资料都提到了 npm 和 cnpm 。

    有15位网友表示赞同!

■□丶一切都无所谓

我已经注册了 npm 账号,但还不知道怎么使用它呢!希望能通过这篇教程学习到更多知识!

    有15位网友表示赞同!

【深入理解npm:从基本使用到cnpm的探讨】相关文章:

1.蛤蟆讨媳妇【哈尼族民间故事】

2.米颠拜石

3.王羲之临池学书

4.清代敢于创新的“浓墨宰相”——刘墉

5.“巧取豪夺”的由来--米芾逸事

6.荒唐洁癖 惜砚如身(米芾逸事)

7.拜石为兄--米芾逸事

8.郑板桥轶事十则

9.王献之被公主抢亲后的悲惨人生

10.史上真实张三丰:在棺材中竟神奇复活