广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >如何使用NPM
  • 214
分享到

如何使用NPM

2024-04-02 19:04:59 214人浏览 八月长安
摘要

这篇文章主要为大家展示了“如何使用NPM”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用NPM”这篇文章吧。1. 初始化包我们可以运行 npm init命

这篇文章主要为大家展示了“如何使用NPM”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用NPM”这篇文章吧。

1. 初始化包

我们可以运行 npm init命令来初始化包,但是它会询问关于包、作者等信息。还有另一种方法可以使用 npm init -y 命令自动生成我们的  package.JSON

npm init -y

我们还可以使用 npm config 命令设置一些默认的初始化配置,例如作者详细信息等。

npm config set init-author-name "Ankit Jain" npm config set init-author-email "ankitjain28may77@gmail.com"

然后运行 npm init -y 自动生成我们的包:

{   "name": "<name of the root dir>",   "version": "1.0.0",   "description": "",   "main": "index.js",   "scripts": {     "test": "echo \"Error: no test specified\" && exit 1"   },   "keyWords": [],   "author": "Ankit Jain <ankitjain28may77@gmail.com>",   "license": "ISC" }

我们还可以使用 npm config 配置自己的 javascript 文件来扩展 npm init 的功能:

npm config set init-module <path-of-the-custom-file>

2. 从不同源安装包

NPM CLI 还允许从其他来源(例如 Bit ,tarball 文件,GitHub ,Bitbucket 和 GISt )安装 javascript  包。

# Install a component from Bit (set Bit as a scoped registry) npm config set @bit:registry https://node.bit.dev npm i @bit/username.collection.component # Install from tarball stored locally npm i ./local-tarball-package.tgz # Install tarball package from internet npm i Https://abc/xyz/package.tar.gz # Install from github repo npm i githubuser/reponame # Install from bitbucket repo npm i bitbucket:bitbucketuser/reponame # Install from gist npm i gist:gistID

例如:从Bit安装按钮组件

假设我需要一个按钮组件,而我的一个队友已经按钮组件发布到我们在 Bit 上的组件集合上了。

首先,将 Bit 配置为scope (范围包)

npm config set @bit:registry https://node.bit.dev

然后,我将转到我团队的组件集中寻找按钮:

如何使用NPM

找到 button 组件,复制安装命令,使用NPM进行安装

如何使用NPM

npm i @bit/the_a-team.imperfect-components.button

我的团队的名称:“ The A-Team”。 我们的组件集名称:“Imperfect Components”。

例如:从npm企业私库安装 Icon 组件

例如,我需要在项目中安装一个 Icon 组件,而我的一个队友已经将按钮组件发布到 npm 企业私库上了。

我们同样可以使用 scope 和企业私库关联起来。这样你就可以同时使用 npm 公共仓库和一些其他的私有仓库中的模块:

npm config set @xscope:registry https://xxx.com/npm/

多源安装:用户无感知

每次用户使用私有库的时候都需要切换 npm 镜像路径,利用 npm preinstall 的钩子,项目的 package.json 里增加  preinstall 要执行的脚本,这样合作方可以无感知的安装:

// 在执行 npm install 命令前,npm 会自动执行 npm preinstall 钩子 "scripts": {     "preinstall": "node ./bin/preinstall.js" }

配置 ./bin/preinstall.js:

const { exec } = require('child_process');  exec('npm config get registry', function(error, stdout, stderr) {   if (!stdout.toString().match(/registry\.x\.com/)) {     exec('  npm config set @xscope:registry https://xxx.com/npm/');   } });

3.全新安装依赖包

我们可以运行 npm ci 来全新安装我们的软件依赖包。 它通常用于CI / CD平台等自动化环境。

npm ci

它与 npm install 在以下方面不同:

  • 它会根据 package-lock.json  安装依赖包,这可以保证整个开发团队都使用版本完全一致的依赖,避免把时间浪费在排查因为依赖不一致而导致的各种奇怪问题上

  • 它会安装 package-lock.json 文件中提到的软件包的确切版本,无需计算求解依赖满足问题,在大多数情况下都可以大大加速 node  模块安装过程

  • 它会先删除项目中现有的 node_modules ,然后全新安装

  • 它不会写入 package.json 或任何包:安装基本上是冻结的

  • npm install 可以安装单个依赖包,npm ci 只能一次安装整个项目所以依赖包,无法安装单个依赖包

另外,如果 package-lock.json 过时(和 package.json 冲突),那么 npm ci  会很贴心地报错,避免项目依赖陷入过时状态。

注意: 如果你使用 npm ci,别忘了把 package-lock.json 加入 git 仓库。

4.使用快捷方式安装包

这是最有用的功能,可用于节省安装软件包时的时间:

# Install package npm install <package_name> Shortcut: npm i <package_name> # Install devDependencies npm install --save-dev <package_name> Shortcut: npm i -D <package_name> # Install dependencies (This is default) npm install --save-prod <package_name> Shortcut: npm i -P <package_name> # Install packages globally npm install --global <package_name> Shortcut: npm i -g <package_name>

在一个命令中安装多个包:

npm i express cheerio axiOS

安装具有相同前缀的多个包:

npm i eslint-{plugin-import,plugin-React,loader} express

5. NPM scripts

NPM scripts 是最有用的功能。 除了预定义的前后钩子(通常称为生命周期脚本)外,它还支持自定义脚本,例如:

  • preinstall :它会在安装任何依赖包之前运行

我们还可以在项目中运行 npm run env ,列出项目中存在的所有npm环境变量。 包括以 npm_package_ 为前缀的包属性。

npm run env

输出:

npm_config_save_dev= npm_config_legacy_bundling= npm_config_dry_run= npm_config_viewer=man . . npm_package_license=ISC                # Package properties npm_package_author_name=Ankit Jain npm_package_name=npm-tips-and-tricks   # Name of our package

我们还可以通过 process.env.npm_package_name 和类似的其他变量在代码中访问上述 env 变量。

在package.json中配置自己的变量

我们可以定义 package.json 文件中的 config ,来定义自己的变量作为带有 npm_package_config_  前缀的npm环境变量,如下:

"config": {     "myvariable": "Hello World" },

现在,让我们在env变量中进行检查:

npm run env | grep npm_package_config_

输出:

npm_package_config_myvariable=Hello World

如何使用NPM

定义我们的自定义脚本

npm run 命令会显示我们在 package.json 文件中定义的所有脚本。

让我们在 package.json 中添加一些自定义脚本:

"scripts": {     "test": "echo \"Error: no test specified\" && exit 1",     "start": "node index.js",     "echo-hello": "echo \"Hello\"",     "echo-helloworld": "echo \"Helloworld\"",     "echo-both": "npm run echo-hello && npm run echo-helloworld",     "echo-both-in-parallel": "npm run echo-hello & npm run echo-helloworld",     "echo-packagename": "echo $npm_package_name",     "echo-myvariable": "echo $npm_package_config_myvariable",     "echo-passargument": "npm run echo-packagename -- \"hello\"",     "echo-pipedata": "cat ./package.json | jq .name > package-name.txt" },

运行以下命令:

npm run

复制代码

输出:

# npm-tips-and-tricks (name of our package) Lifecycle scripts included in npm-tips-and-tricks:   test     echo "Error: no test specified" && exit 1   start     node index.js available via `npm run-script`:   echo-hello     echo "Hello"   echo-helloworld     echo "Helloworld"   echo-both     npm run echo-hello && npm run echo-helloworld   echo-both-in-parallel     npm run echo-hello & npm run echo-helloworld   echo-packagename     echo $npm_package_name   echo-myvariable     echo $npm_package_config_myvariable   echo-passargument     npm run echo-packagename -- "hello"   echo-pipedata     cat ./package.json | jq .name > package-name.txt

运行一个简单的npm脚本:

npm run echo-hello # Output > echo "Hello" Hello

在单个npm脚本中运行多个脚本:

我们可以使用 && 运行多个脚本。 这两个脚本都是连续运行的,即一个接一个地运行。

npm run echo-both # Output > npm run echo-hello && npm run echo-helloworld > npm-tips-and-tricks@1.0.0 echo-hello  > echo "Hello" Hello > npm-tips-and-tricks@1.0.0 echo-helloworld > echo "Helloworld" Helloworld

我们还可以使用 & 并行运行多个脚本。

npm run echo-both-in-parallel # Output > npm run echo-hello & npm run echo-helloworld > npm-tips-and-tricks@1.0.0 echo-hello > echo "Hello" > npm-tips-and-tricks@1.0.0 echo-helloworld > echo "Helloworld" Hello Helloworld

在npm脚本中使用npm环境变量

npm run echo-packagename # Output > echo $npm_package_name npm-tips-and-tricks ------------- npm run echo-myvariable # Output > echo $npm_package_config_myvariable Hello World

将参数传递给另一个npm脚本

我们可以使用 -- 将参数传递给 npm 脚本。 在下面的示例中,我们将 hello 作为参数传递给 echo-packagename 脚本。

npm run echo-passargument # Output > npm run echo-packagename -- "hello" > npm-tips-and-tricks@1.0.0 echo-packagename > echo $npm_package_name "hello" npm-tips-and-tricks hello

使用管道将数据从一个npm脚本传递到另一个脚本

npm run echo-pipedata # Output > cat ./package.json | jq .name > package-name.txt # Let's cat package-name.txt cat package-name.txt # Output "npm-tips-and-tricks"

6.快速导航到打包文档

我们只需运行以下命令即可快速导航到任何npm软件包的文档:

npm docs <package-name> OR npm home <package-name>

如果我们要检查任何未解决的问题或将任何错误归档到npm软件包,我们也可以通过运行以下命令导航到网站:

npm bug <package-name>

类似,npm repo 在浏览器中打开GitHub repo页面。

7. 删除重复的包

我们可以通过运行 npm dedupe 命令删除重复的依赖项。 它通过删除重复的程序包并在多个从属程序包之间有效地共享公共依赖项,简化了总体结构。  这样就形成了一个平面且具有重复数据删除功能的树。

npm dedupe or npm ddp

8.扫描应用程序中的漏洞

我们可以运行 npm audit 命令来扫描我们的项目中任何依赖项中的任何漏洞。  它会以表格格式生成漂亮的输出并显示(我们也可以用JSON获取输出),如果其它包是多级/多依赖项,则其它包都依赖于此包。

npm audit fix 会自动安装所有漏洞包的补丁版本(如果可用)

npm audit fix

9.检查环境

我们可以使用 npm doctor 命令在我们的环境中运行多个检查,比如,我们的npm  CLI是否有足够的权限来安装javascript包,它是否能够连接到npm注册表。它还检查node和npm版本,验证缓存是否有损坏的软件包。

npm doctor

如何使用NPM

10.在本地测试你的软件包

NPM提供了 npm link 命令,以便我们可以迭代地工作和测试包。NPM link会在全局npm  modules文件夹中创建一个指向我们测试包的符号链接,我们可以通过运行 npm link  将这个包安装到我们的测试应用程序中,这将创建一个从全局安装的包到我们项目 node_modules  目录的符号链接。它在测试本地包或使用本地npm包时非常有用。

cd /test-package (package name is helloworld) npm link                     # Global symlink created cd /application npm link helloworld         # Create symlink in node_modules

11.检查包是否过时

我们可以使用 npm outdated 命令来检查所有过时的npm软件包。 它还显示了应为过时的软件包安装的最新版本。

npm outdated --long or npm outdated -l

如何使用NPM

我们还可以通过简单地运行以下命令来检查任何npm软件包的最新版本:

# Shows the package infORMation npm view <package-name> or npm v <package-name> # Shows the latest version only npm v <package-name> version # Shows the list of all versions npm v <package-name> versions

12.列出所有已安装的软件包

通过运行 npm list 命令,我们可以列出项目中安装的所有npm包。它将创建一个树结构,显示已安装的包及其依赖项。

npm list or npm ls

如何使用NPM

我们可以使用 depth 标志来限制搜索深度:

npm ls --depth=1

以上是“如何使用NPM”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网JavaScript频道!

--结束END--

本文标题: 如何使用NPM

本文链接: https://www.lsjlt.com/news/81861.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何使用NPM
    这篇文章主要为大家展示了“如何使用NPM”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用NPM”这篇文章吧。1. 初始化包我们可以运行 npm init命...
    99+
    2022-10-19
  • 如何在Java中使用NPM?
    如何在Java中使用NPM? NPM(Node Package Manager)是一个流行的包管理器,主要用于在Node.js应用程序中安装和管理依赖项。然而,NPM也可以在Java应用程序中使用,这使得Java开发人员可以轻松地使用Jav...
    99+
    2023-10-21
    npm 二维码 编程算法
  • 如何在 Go 中使用 npm 包?
    Go 语言是一种开源的编程语言,它在不同的操作系统中都有着广泛的应用。在开发过程中,我们常常需要使用一些第三方库和工具来提高开发效率。而 npm 是一个非常流行的 Node.js 包管理器,其中包含了大量的 JavaScript 库和工具...
    99+
    2023-09-07
    npm 容器 响应
  • 如何在Java中使用NPM API?
    在Java中使用NPM API可以让开发人员更加便捷地管理和使用NPM包,而不需要离开Java开发环境。本文将介绍如何在Java中使用NPM API,并附带演示代码。 一、NPM API简介 NPM API是一个基于RESTful的API,...
    99+
    2023-09-26
    api npm 关键字
  • 如何使用Python编写npm load?
    Node.js是一个非常流行的JavaScript运行时环境,而npm则是Node.js的包管理器。它允许开发人员轻松地共享和复用代码,使得构建Web应用程序变得更加容易和高效。但是,有时候在使用npm时会遇到一些问题,例如加载时间过长或...
    99+
    2023-06-20
    教程 npm load
  • Python教程:如何使用npm load?
    Python是一种广泛使用的编程语言,它有许多不同的库和模块,可以用来完成各种各样的任务。其中,Node.js的npm包管理器是一个非常有用的工具,它可以帮助我们轻松地安装和管理Python库。在本文中,我们将探讨如何使用npm load...
    99+
    2023-06-20
    教程 npm load
  • 如何在 Java 中使用 NPM 包?
    在现代的软件开发中,使用第三方库和工具包已经成为了必不可少的一部分。而在 Java 开发中,NPM 包是一个非常流行的第三方包管理工具,它可以让你在 Java 中轻松地使用各种现成的功能模块和工具。在本文中,我们将探讨如何在 Java 中使...
    99+
    2023-07-05
    关键字 函数 npm
  • 如何在Windows上使用Python和npm?
    Python和npm是两个非常有用的工具,它们可以帮助我们完成很多任务。Python是一种高级编程语言,可用于创建各种类型的应用程序,包括Web应用程序、桌面应用程序、游戏等。npm则是一个非常流行的包管理器,用于在Web应用程序中安装和...
    99+
    2023-10-14
    npm shell windows
  • NPM中如何使用PHP Shell路径?
    Node Package Manager(NPM)是一个广泛使用的包管理工具,可用于管理Node.js应用程序的依赖项。在NPM中,您可以找到各种包,包括PHP包,以帮助您在Node.js应用程序中使用PHP。 在本文中,我们将讨论如何在...
    99+
    2023-09-25
    shell path npm
  • 如何使用npm安装yarn详解
    目录引言window版:mac版:那么,npm 和yarn的区别是什么呢??命令对比:总结引言 很多同学用惯了npm安装项目依赖,想要尝试使用yarn的命令,但是第一次使用yarn的...
    99+
    2022-11-13
  • 如何在 Java 中使用 npm 模块?
    随着现代 Web 开发的发展,前端技术在不断迭代更新,而 Node.js 和 npm 作为前端技术的重要工具,已经成为了 Web 开发中必不可少的一部分。但是,对于 Java 开发者来说,如何在 Java 中使用 npm 模块却是一个比较...
    99+
    2023-07-08
    容器 npm 框架
  • ASP 中如何使用 npm 安装和使用 numy?
    在 ASP 中使用 npm 安装和使用 numy,是一种很方便的方法,可以帮助 ASP 开发者更加快捷地实现数据分析和科学计算。在本文中,我们将介绍如何在 ASP 中使用 npm 安装和使用 numy。 一、什么是 npm? npm 是 ...
    99+
    2023-08-29
    npm path numy
  • 如何在ASP.NET应用程序中使用npm?
    ASP.NET是一种流行的Web应用程序框架,它使用.NET Framework和C#编程语言。随着Web开发的发展,前端技术也逐渐成为Web应用程序开发的重要组成部分。npm是Node.js的包管理器,它为前端开发人员提供了大量的Java...
    99+
    2023-09-28
    git npm django
  • 如何在 Linux 上使用 NPM 安装 Go?
    在 Linux 上使用 NPM 安装 Go Go 是一种高效、可靠、简单的编程语言,由 Google 在 2009 年推出。Go 语言具有强大的并发特性和高效的内存管理,因此在开发云服务、网络应用、分布式系统等方面得到了广泛应用。本文将介绍...
    99+
    2023-09-08
    http npm linux
  • ASP 中如何使用实时 npm 对象?
    ASP 是一种古老的服务器端脚本语言,它的开发环境是 Windows Server,因此在 ASP 中使用 npm 包管理工具并不是很方便。不过,随着 Node.js 的发展,npm 的实时对象已经成为一个非常重要的技术,并且可以在 AS...
    99+
    2023-10-08
    实时 npm 对象
  • Java中如何使用npm安装容器?
    随着云计算和容器技术的发展,越来越多的企业开始采用容器技术来构建和管理应用程序。而在Java中,使用npm(Node Package Manager)安装容器是一种非常流行的方式。npm是一个非常流行的包管理器,它可以自动处理依赖关系,并...
    99+
    2023-10-21
    容器 关键字 npm
  • Java项目中如何使用NPM打包?
    NPM是一个JavaScript包管理器,可用于在Node.js环境中管理依赖项。但是,在Java项目中使用NPM打包也是可行的。在这篇文章中,我们将介绍如何在Java项目中使用NPM打包。 安装Node.js和NPM 首先,您需要安...
    99+
    2023-07-30
    npm leetcode 打包
  • Java 数组 API:如何使用 NPM 安装?
    Java 数组是一种非常常用的数据类型,用于存储一组相同数据类型的元素。Java 数组 API 提供了一系列的方法,可以方便地操作数组,例如添加元素、删除元素、排序等等。本文将介绍如何使用 NPM 安装 Java 数组 API,并提供一些...
    99+
    2023-08-22
    数组 api npm
  • ASP 框架中如何使用缓存 npm?
    ASP 框架是一种非常流行的 Web 应用程序框架,它使用 Microsoft ASP.NET 技术来创建 Web 应用程序。在 ASP 框架中,缓存 npm 是一种非常有用的工具,它可以帮助您提高应用程序的性能并减少数据库访问次数。 在本...
    99+
    2023-11-09
    框架 缓存 npm
  • 如何使用Python重定向npm日志?
    当你在使用npm时,你可能会遇到一些问题,例如npm输出的日志信息太多,难以阅读。幸运的是,Python提供了一种简单的方法来重定向npm日志,从而使其易于管理。 在本文中,我们将介绍如何使用Python重定向npm日志,以便更轻松地查看...
    99+
    2023-06-18
    重定向 日志 npm
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作