标签 npm 下的文章

x86、Arm 和 RISC-V 内核将能在一个处理器中共同工作

英特尔将把其最重要的资产,即 x86 架构,授权给那些想制作 定制芯片 的人。根据不同的应用,客户将能够在英特尔制造的定制设计的芯片中混合使用 x86、Arm 和 RISC-V CPU 内核以及硬件加速单元。基于不同架构的内核将相互连接并协同工作以执行系统软件和程序。这种多 ISA 战略是英特尔历史上第一次将 x86 软核和硬核授权给想开发芯片的客户。

老王点评:这种多 ISA 的处理器似乎就可以同时运行多种架构的应用了?

数以千计的 NPM 账户使用过期域名的电子邮件地址

NPM 是 JavaScript 库的事实存储库,也是互联网上最大的包存储库。研究人员在去年分析了 NPM 上的 160 万个库的元数据,他们发现有 2818 个项目维护者的账户仍在使用 域名过期 的电子邮件地址,并且其中一些域名在 GoDaddy 等网站上出售。攻击者可以购买这些域名,在他们自己的电子邮件服务器上重新注册维护者的地址,然后重新设置维护者的账户密码并接管他的 npm 包。

老王点评:一些 NPM 模块的开发不是严肃的工作,但是却有可能用在严肃的场合。

开发者已经可用 Rust 为 Linux 开发抽象子系统和驱动了

开发者发出了在 Linux 内核中使用的 Rust 编程语言支持 的第四个版本。这种对 Linux 内核驱动程序的可选 Rust 编程支持继续成熟,今年将有望看到主线状态。开发者称,“Rust 支持仍然实验性的。然而,支持已经足够好,内核开发者可以开始用 Rust 开发子系统抽象层,并编写驱动程序和其他模块。”目前,在内核中加入的 Rust 编程语言基础设施以及一些示例代码大约有 34000 行新代码。

老王点评:关于 Rust 进入 Linux 内核开发,还是存在不少不同意见的。

以后可以在 Linux 应用中看到(很多)广告了

Qt 宣布支持客户端应用程序中的广告,应用程序开发人员现在可以在桌面应用程序中提供 广告服务,而这通常是 Windows 用户的待遇。Qt 被广泛使用在桌面应用程序开发中,KDE 就是基于 Qt 框架开发的。虽然估计不会在 KDE 的核心应用程序中看到广告,但有可能一些急于挣钱的发行版会将这些应用程序分叉,在其中放置广告。根据其文档,该广告插件支持所有主流平台,包括 Windows 和 Linux 等等。

老王点评:这个消息让我一时不知道该怎么说,一方面确实可以补贴一些开源开发团队,另外一方面充斥着广告的 Linux ,怎么都感觉不对劲。

自毁代码库的作者要求恢复其发布到 NPM 的能力

Faker.js 的原作者在 自毁 了其两个重要的开源代码库之后,GitHub 和 NPM 一度封禁了他的账户并回滚了其提交的恶意版本。之后 GitHub 恢复了他的账户,而一些社区贡献者 复刻 了他的 Faker.js 项目,并提出了积极的发展路线图。而该作者在 Twitter 上 抱怨称,GitHub 取消了他向 NPM 发布和修复错误的能力,一直没有恢复。他称其还有一百多个包要维护,并委婉地承认了错误:“每个人都会时不时地犯编程错误。没有人是完美的。”

老王点评:公平的讲,虽然该作者的行为不合情理,但是 GitHub 和 NPM 也没有强行封禁的权利和理由。

Linux 供应商固件服务考虑为老旧设备提供开源固件

开发者提议,由 Linux 供应商固件服务(LVFS)这样的实体为已经过了保修期的硬件提供自由开源的固件。这涉及到一些法律问题,而且这样的举动可能不会得到硬件供应商的认可。到目前为止,由于法律要求、良好的安全模式等原因,LVFS 完全依赖于 ODM/OEM 为其硬件上传固件。对于没有经验的用户来说,通常不是很容易自己操作闪存。而采用 LVFS 可以使你更容易地关闭系统的专有固件,并在支持的情况下切换到自由固件。如果用户接受采用第三方固件的风险,这样也为挽救过保的硬件提供了可能。

老王点评:我觉得这是一种有益的尝试。

本速成教程向你展示了在 Ubuntu 和 Debian Linux 上安装 Yarn 包管理器的官方方法。你还将学习到一些基本的 Yarn 命令以及彻底删除 Yarn 的步骤。

Yarn 是 Facebook 开发的开源 JavaScript 包管理器。它是流行的 npm 包管理器的一个替代品,或者应该说是改进。 Facebook 开发团队 创建 Yarn 是为了克服 npm 的缺点。 Facebook 声称 Yarn 比 npm 更快、更可靠、更安全。

与 npm 一样,Yarn 为你提供一种自动安装、更新、配置和删除从全局注册库中检索到的程序包的方法。

Yarn 的优点是它更快,因为它可以缓存已下载的每个包,所以无需再次下载。它还将操作并行化,以最大化资源利用率。在执行每个已安装的包代码之前,Yarn 还使用 校验和来验证完整性。 Yarn 还保证可以在一个系统上运行的安装,在任何其他系统上都会以完全相同地方式工作。

如果你正 在 Ubuntu 上使用 node.js,那么你的系统上可能已经安装了 npm。在这种情况下,你可以使用 npm 通过以下方式全局安装 Yarn:

sudo npm install yarn -g

不过,我推荐使用官方方式在 Ubuntu/Debian 上安装 Yarn。

在 Ubuntu 和 Debian 上安装 Yarn [官方方式]

这里提到的说明应该适用于所有版本的 Ubuntu,例如 Ubuntu 18.04、16.04 等。同样的一组说明也适用于 Debian 和其他基于 Debian 的发行版。

由于本教程使用 curl 来添加 Yarn 项目的 GPG 密钥,所以最好验证一下你是否已经安装了 curl

sudo apt install curl

如果 curl 尚未安装,则上面的命令将安装它。既然有了 curl,你就可以使用它以如下方式添加 Yarn 项目的 GPG 密钥:

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -

在此之后,将存储库添加到源列表中,以便将来可以轻松地升级 Yarn 包,并进行其余系统更新:

sudo sh -c 'echo "deb https://dl.yarnpkg.com/debian/ stable main" >> /etc/apt/sources.list.d/yarn.list'

你现在可以继续了。更新 Ubuntu 或 Debian 系统,以刷新可用软件包列表,然后安装 Yarn:

sudo apt update
sudo apt install yarn

这将一起安装 Yarn 和 node.js。该过程完成后,请验证是否已成功安装 Yarn。 你可以通过检查 Yarn 版本来做到这一点。

yarn --version

对我来说,它显示了这样的输出:

yarn --version
1.12.3

这意味着我的系统上安装了 Yarn 版本 1.12.3。

使用 Yarn

我假设你对 JavaScript 编程以及依赖项的工作原理有一些基本的了解。我在这里不做详细介绍。我将向你展示一些基本的 Yarn 命令,这些命令将帮助你入门。

使用 Yarn 创建一个新项目

npm 一样,Yarn 也可以使用 package.json 文件。在这里添加依赖项。所有依赖包都缓存在项目根目录下的 node_modules 目录中。

在项目的根目录中,运行以下命令以生成新的 package.json 文件:

它会问你一些问题。你可以按回车键跳过或使用默认值。

yarn init
yarn init v1.12.3
question name (test_yarn): test_yarn_proect
question version (1.0.0): 0.1
question description: Test Yarn
question entry point (index.js):
question repository url:
question author: abhishek
question license (MIT):
question private:
success Saved package.json
Done in 82.42s.

这样,你就得到了一个如下的 package.json 文件:

{
 "name": "test_yarn_proect",
 "version": "0.1",
 "description": "Test Yarn",
 "main": "index.js",
 "author": "abhishek",
 "license": "MIT"
}

现在你有了 package.json,你可以手动编辑它以添加或删除包依赖项,也可以使用 Yarn 命令(首选)。

使用 Yarn 添加依赖项

你可以通过以下方式添加对特定包的依赖关系:

yarn add <包名>

例如,如果你想在项目中使用 Lodash,则可以使用 Yarn 添加它,如下所示:

yarn add lodash
yarn add v1.12.3
info No lockfile found.
[1/4] Resolving packages…
[2/4] Fetching packages…
[3/4] Linking dependencies…
[4/4] Building fresh packages…
success Saved lockfile.
success Saved 1 new dependency.
info Direct dependencies
└─ [email protected]
info All dependencies
└─ [email protected]
Done in 2.67s.

你可以看到,此依赖项已自动添加到 package.json 文件中:

{
 "name": "test_yarn_proect",
 "version": "0.1",
 "description": "Test Yarn",
 "main": "index.js",
 "author": "abhishek",
 "license": "MIT",
 "dependencies": {
 "lodash": "^4.17.11"
 }
}

默认情况下,Yarn 将在依赖项中添加最新版本的包。如果要使用特定版本,可以在添加时指定。

yarn add package@version-or-tag

像往常一样,你也可以手动更新 package.json 文件。

使用 Yarn 升级依赖项

你可以使用以下命令将特定依赖项升级到其最新版本:

yarn upgrade <包名>

它将查看所​​涉及的包是否具有较新的版本,并且会相应地对其进行更新。

你还可以通过以下方式更改已添加的依赖项的版本:

yarn upgrade package_name@version_or_tag

你还可以使用一个命令将项目的所有依赖项升级到它们的最新版本:

yarn upgrade

它将检查所有依赖项的版本,如果有任何较新的版本,则会更新它们。

使用 Yarn 删除依赖项

你可以通过以下方式从项目的依赖项中删除包:

yarn remove <包名>

安装所有项目依赖项

如果对你 project.json 文件进行了任何更改,则应该运行:

yarn

或者,

yarn install

一次安装所有依赖项。

如何从 Ubuntu 或 Debian 中删除 Yarn

我将通过介绍从系统中删除 Yarn 的步骤来完成本教程,如果你使用上述步骤安装 Yarn 的话。如果你意识到不再需要 Yarn 了,则可以将它删除。

使用以下命令删除 Yarn 及其依赖项。

sudo apt purge yarn

你也应该从源列表中把存储库信息一并删除掉:

sudo rm /etc/apt/sources.list.d/yarn.list

下一步删除已添加到受信任密钥的 GPG 密钥是可选的。但要做到这一点,你需要知道密钥。你可以使用 apt-key 命令获得它:

Warning: apt-key output should not be parsed (stdout is not a terminal) pub   rsa4096 2016-10-05 [SC]       72EC F46A 56B4 AD39 C907  BBB7 1646 B01B 86E5 0310 uid           [ unknown] Yarn Packaging [email protected] sub   rsa4096 2016-10-05 [E] sub   rsa4096 2019-01-02 [S] [expires: 2020-02-02]

这里的密钥是以 pub 开始的行中 GPG 密钥指纹的最后 8 个字符。

因此,对于我来说,密钥是 86E50310,我将使用以下命令将其删除:

sudo apt-key del 86E50310

你会在输出中看到 OK,并且 Yarn 包的 GPG 密钥将从系统信任的 GPG 密钥列表中删除。

我希望本教程可以帮助你在 Ubuntu、Debian、Linux Mint、 elementary OS 等操作系统上安装 Yarn。 我提供了一些基本的 Yarn 命令,以帮助你入门,并完成了从系统中删除 Yarn 的完整步骤。

希望你喜欢本教程,如果有任何疑问或建议,请随时在下面留言。


via: https://itsfoss.com/install-yarn-ubuntu

作者:Abhishek Prakash 选题:lujun9972 译者:gxlct008 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Safari 将采用 Chrome/Firefox 相同的 WebExtensions API

Chrome 有着庞大的扩展生态系统,而随着所有主流浏览器都采用 WebExtensions API,这一扩展技术已成为事实上的标准,这也方便用户从一个浏览器切换到另一个浏览器。Firefox 是从 v57 开始正式采用 WebExtensions API 的。

来源:solidot

拍一拍:主要浏览器能支持一致的扩展 API,这是一件大好事。

恶意 npm 软件包试图窃取敏感的 Discord 和浏览器文件

该恶意包是一个名为 fallguys 的 JavaScript 库,它声称提供了一个《Fall Guys: Ultimate Knockout》游戏 API 的接口。这段代码会试图访问 5 个本地文件,读取它们的内容,然后将数据发布在 Discord 频道里面。npm 安全团队已经从 npm 门户网站上删除了它。

来源:zdnet

拍一拍:即便是开源的软件包,也不能轻易相信一定经过了审查,也不一定有人替你做过审查。

苹果阻止了 Facebook 应用更新,要求征收内购的 30% 销售税

Facebook 表示,这次更新是“一种新的货币化在线直播活动的方式,通过一次性的访问费用,在客人注册参加时收取”。但苹果以“不相关”信息为由拒绝了这一更新。该公司要求苹果免除 iOS 应用内购买费 30%,这样所有收入就可以归活动主办方所有。然而,苹果拒绝了。

来源:zdnet

拍一拍:“甭管是谁,在我苹果上的地盘都得听我的!”

NPM 是 Node Package Manager (node 包管理器)的缩写,它是用于安装 NodeJS 软件包或模块的命令行软件包管理器。我们发布过一个指南描述了如何使用 NPM 管理 NodeJS 包。你可能已经注意到,使用 Npm 管理 NodeJS 包或模块并不是什么大问题。但是,如果你不习惯用 CLI 的方式,这有一个名为 NDM 的桌面 GUI 程序,它可用于管理 NodeJS 程序/模块。 NDM,代表 NPM Desktop Manager (npm 桌面管理器),是 NPM 的自由开源图形前端,它允许我们通过简单图形桌面安装、更新、删除 NodeJS 包。

在这个简短的教程中,我们将了解 Linux 中的 Ndm。

安装 NDM

NDM 在 AUR 中可用,因此你可以在 Arch Linux 及其衍生版(如 Antergos 和 Manjaro Linux)上使用任何 AUR 助手程序安装。

使用 Pacaur

$ pacaur -S ndm

使用 Packer

$ packer -S ndm

使用 Trizen

$ trizen -S ndm

使用 Yay

$ yay -S ndm

使用 Yaourt

$ yaourt -S ndm

在基于 RHEL 的系统(如 CentOS)上,运行以下命令以安装 NDM。

$ echo "[fury] name=ndm repository baseurl=https://repo.fury.io/720kb/ enabled=1 gpgcheck=0" | sudo tee /etc/yum.repos.d/ndm.repo && sudo yum update &&

在 Debian、Ubuntu、Linux Mint:

$ echo "deb [trusted=yes] https://apt.fury.io/720kb/ /" | sudo tee /etc/apt/sources.list.d/ndm.list && sudo apt-get update && sudo apt-get install ndm

也可以使用 Linuxbrew 安装 NDM。首先,按照以下链接中的说明安装 Linuxbrew。

安装 Linuxbrew 后,可以使用以下命令安装 NDM:

$ brew update
$ brew install ndm

在其他 Linux 发行版上,进入 NDM 发布页面,下载最新版本,自行编译和安装。

NDM 使用

从菜单或使用应用启动器启动 NDM。这就是 NDM 的默认界面。

在这里你可以本地或全局安装 NodeJS 包/模块。

本地安装 NodeJS 包

要在本地安装软件包,首先通过单击主屏幕上的 “Add projects” 按钮选择项目目录,然后选择要保留项目文件的目录。例如,我选择了一个名为 “demo” 的目录作为我的项目目录。

单击项目目录(即 demo),然后单击 “Add packages” 按钮。

输入要安装的软件包名称,然后单击 “Install” 按钮。

安装后,软件包将列在项目目录下。只需单击该目录即可在本地查看已安装软件包的列表。

同样,你可以创建单独的项目目录并在其中安装 NodeJS 模块。要查看项目中已安装模块的列表,请单击项目目录,右侧将显示软件包。

全局安装 NodeJS 包

要全局安装 NodeJS 包,请单击主界面左侧的 “Globals” 按钮。然后,单击 “Add packages” 按钮,输入包的名称并单击 “Install” 按钮。

管理包

单击任何已安装的包,不将在顶部看到各种选项,例如:

  1. 版本(查看已安装的版本),
  2. 最新(安装最新版本),
  3. 更新(更新当前选定的包),
  4. 卸载(删除所选包)等。

NDM 还有两个选项,即 “Update npm” 用于将 node 包管理器更新成最新可用版本, 而 “Doctor” 会运行一组检查以确保你的 npm 安装有所需的功能管理你的包/模块。

总结

NDM 使安装、更新、删除 NodeJS 包的过程更加容易!你无需记住执行这些任务的命令。NDM 让我们在简单的图形界面中点击几下鼠标即可完成所有操作。对于那些懒得输入命令的人来说,NDM 是管理 NodeJS 包的完美伴侣。

干杯!


via: https://www.ostechnix.com/ndm-a-desktop-gui-application-for-npm/

作者:SK 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

前一段时间,我们发布了一个使用 pip 管理 Python 包的指南。今天,我们将讨论如何使用 npm 管理 NodeJS 包。npm 是最大的软件注册中心,包含 600,000 多个包。每天,世界各地的开发人员通过 npm 共享和下载软件包。在本指南中,我将解释使用 npm 基础知识,例如安装包(本地和全局)、安装特定版本的包、更新、删除和管理 NodeJS 包等等。

安装 npm

用于 npm 是用 NodeJS 编写的,我们需要安装 NodeJS 才能使用 npm。要在不同的 Linux 发行版上安装 NodeJS,请参考下面的链接。

检查 node 安装的位置:

$ which node
/home/sk/.nvm/versions/node/v9.4.0/bin/node

检查它的版本:

$ node -v
v9.4.0

进入 Node 交互式解释器:

$ node
> .help
.break Sometimes you get stuck, this gets you out
.clear Alias for .break
.editor Enter editor mode
.exit Exit the repl
.help Print this help message
.load Load JS from a file into the REPL session
.save Save all evaluated commands in this REPL session to a file
> .exit

检查 npm 安装的位置:

$ which npm
/home/sk/.nvm/versions/node/v9.4.0/bin/npm

还有版本:

$ npm -v
5.6.0

棒极了!Node 和 npm 已安装好!正如你可能已经注意到,我已经在我的 $HOME 目录中安装了 NodeJS 和 NPM,这样是为了避免在全局模块时出现权限问题。这是 NodeJS 团队推荐的方法。

那么,让我们继续看看如何使用 npm 管理 NodeJS 模块(或包)。

安装 NodeJS 模块

NodeJS 模块可以安装在本地或全局(系统范围)。现在我将演示如何在本地安装包(LCTT 译注:即将包安装到一个 NodeJS 项目当中,所以下面会先创建一个空项目做演示)。

在本地安装包

为了在本地管理包,我们通常使用 package.json 文件来管理。

首先,让我们创建我们的项目目录。

$ mkdir demo
$ cd demo

在项目目录中创建一个 package.json 文件。为此,运行:

$ npm init

输入你的包的详细信息,例如名称、版本、作者、GitHub 页面等等,或者按下回车键接受默认值并键入 yes 确认。

This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.

See `npm help json` for definitive documentation on these fields
and exactly what they do.

Use `npm install <pkg>` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
package name: (demo)
version: (1.0.0)
description: demo nodejs app
entry point: (index.js)
test command:
git repository:
keywords:
author:
license: (ISC)
About to write to /home/sk/demo/package.json:

{
 "name": "demo",
 "version": "1.0.0",
 "description": "demo nodejs app",
 "main": "index.js",
 "scripts": {
 "test": "echo \"Error: no test specified\" && exit 1"
 },
 "author": "",
 "license": "ISC"
}

Is this ok? (yes) yes

上面的命令初始化你的项目并创建了 package.json 文件。

你也可以使用命令以非交互式方式执行此操作:

npm init --y

现在让我们安装名为 commander 的包。

$ npm install commander

示例输出:

npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN [email protected] No repository field.

+ [email protected]
added 1 package in 2.519s

这将在项目的根目录中创建一个名为 node_modules 的目录(如果它不存在的话),并在其中下载包。

让我们检查 pachage.json 文件。

$ cat package.json 
{
 "name": "demo",
 "version": "1.0.0",
 "description": "demo nodejs app",
 "main": "index.js",
 "scripts": {
 "test": "echo \"Error: no test specified\" && exit 1"
 },
 "author": "",
 "license": "ISC",
 "dependencies": {
 "commander": "^2.13.0"
 }
}

你会看到添加了依赖文件,版本号前面的插入符号 ( ^ ) 表示在安装时,npm 将取出它可以找到的最高版本的包。

$ ls node_modules/
commander

package.json 文件的优点是,如果你的项目目录中有 package.json 文件,只需键入 npm install,那么 npm 将查看文件中列出的依赖关系并下载它们。你甚至可以与其他开发人员共享它或将其推送到你的 GitHub 仓库。因此,当他们键入 npm install 时,他们将获得你拥有的所有相同的包。

你也可能会注意到另一个名为 package-lock.json 的文件,该文件确保在项目安装的所有系统上都保持相同的依赖关系。

要在你的程序中使用已安装的包,使用实际代码在项目目录中创建一个 index.js(或者其他任何名称)文件,然后使用以下命令运行它:

$ node index.js

在全局安装包

如果你想使用一个包作为命令行工具,那么最好在全局安装它。这样,无论你的当前目录是哪个目录,它都能正常工作。

$ npm install async -g
+ [email protected]
added 2 packages in 4.695s

或者

$ npm install async --global

要安装特定版本的包,我们可以:

$ npm install [email protected] --global

更新 NodeJS 模块

要更新本地包,转到 package.json 所在的项目目录并运行:

$ npm update

然后,运行以下命令确保所有包都更新了。

$ npm outdated

如果没有需要更新的,那么它返回空。

要找出哪一个全局包需要更新,运行:

$ npm outdated -g --depth=0

如果没有输出,意味着所有包都已更新。

更新单个全局包,运行:

$ npm update -g <package-name>

更新所有的全局包,运行:

$ npm update -g

列出 NodeJS 模块

列出本地包,转到项目目录并运行:

$ npm list
[email protected] /home/sk/demo
└── [email protected]

如你所见,我在本地安装了 commander 这个包。

要列出全局包,从任何位置都可以运行以下命令:

$ npm list -g

示例输出:

/home/sk/.nvm/versions/node/v9.4.0/lib
├─┬ [email protected]
│ └── [email protected]
└─┬ [email protected]
 ├── [email protected]
 ├── [email protected]
 ├── [email protected]
 ├── [email protected]
 ├── [email protected]
 ├── [email protected]
[...]

该命令将列出所有模块及其依赖关系。

要仅仅列出顶级模块,使用 -depth=0 选项:

$ npm list -g --depth=0
/home/sk/.nvm/versions/node/v9.4.0/lib
├── [email protected]
└── [email protected]

寻找 NodeJS 模块

要搜索一个模块,使用 npm search 命令:

npm search <search-string>

例如:

$ npm search request

该命令将显示包含搜索字符串 request 的所有模块。

移除 NodeJS 模块

要删除本地包,转到项目目录并运行以下命令,这会从 node_modules 目录中删除包:

$ npm uninstall <package-name>

要从 package.json 文件中的依赖关系中删除它,使用如下所示的 save 选项:

$ npm uninstall --save <package-name>

要删除已安装的全局包,运行:

$ npm uninstall -g <package>

清除 npm 缓存

默认情况下,npm 在安装包时,会将其副本保存在 $HOME 目录中名为 .npm 的缓存文件夹中。所以,你可以在下次安装时不必再次下载。

查看缓存模块:

$ ls ~/.npm

随着时间的推移,缓存文件夹会充斥着大量旧的包。所以不时清理缓存会好一些。

从 npm@5 开始,npm 缓存可以从 corruption 问题中自行修复,并且保证从缓存中提取的数据有效。如果你想确保一切都一致,运行:

$ npm cache verify

清除整个缓存,运行:

$ npm cache clean --force

查看 npm 配置

要查看 npm 配置,键入:

$ npm config list

或者:

$ npm config ls

示例输出:

; cli configs
metrics-registry = "https://registry.npmjs.org/"
scope = ""
user-agent = "npm/5.6.0 node/v9.4.0 linux x64"

; node bin location = /home/sk/.nvm/versions/node/v9.4.0/bin/node
; cwd = /home/sk
; HOME = /home/sk
; "npm config ls -l" to show all defaults.

要显示当前的全局位置:

$ npm config get prefix
/home/sk/.nvm/versions/node/v9.4.0

好吧,这就是全部了。我们刚才介绍的只是基础知识,npm 是一个广泛话题。有关更多详细信息,参阅 NPM Getting Started 指南。

希望这对你有帮助。更多好东西即将来临,敬请关注!

干杯!


via: https://www.ostechnix.com/manage-nodejs-packages-using-npm/

作者:SK 译者:MjSeven 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出