返回

初学者教程:发布第一个 NPM 包

前端

在软件开发过程中,你经常会遇到一些重复性很强的任务,比如格式化代码、压缩图片等等。如果你想把这些任务自动化,那么你可能会用到 NPM 包。


为什么选择 NPM?

  • NPM 包涵盖各种场景,可以解决你遇到的绝大多数问题。
  • NPM 包让你可以利用其他开发者编写的优质代码,省去自己开发的精力。
  • NPM 包可以让你更专注于核心业务逻辑的开发。
  • NPM 包的发布和使用过程非常简单。


发布第一个 NPM 包


1. 准备工作

在你发布 NPM 包之前,你需要确保你的电脑上已经安装了 Node.js 和 NPM。

Node.js 可以从官方网站下载:https://nodejs.org/en/

NPM 可以通过 Node.js 的包管理器安装:

npm install -g npm


2. 创建 NPM 项目

创建一个新的 NPM 项目,需要使用 npm init 命令。这个命令会创建一个名为 package.json 的文件,该文件包含了 NPM 包的基本信息。

mkdir my-npm-package
cd my-npm-package
npm init -y


3. 编写代码

src 目录下创建 index.js 文件,并在其中编写你的代码。

// src/index.js
function greet(name) {
  return `Hello, ${name}!`;
}

module.exports = greet;


4. 创建测试

test 目录下创建 index.test.js 文件,并在其中编写你的测试代码。

// test/index.test.js
const greet = require('../src/index');

test('should greet a person', () => {
  expect(greet('John Doe')).toBe('Hello, John Doe!');
});


5. 发布 NPM 包

要发布 NPM 包,你需要使用 npm publish 命令。这个命令会将你的 NPM 包发布到 NPM 注册表上。

npm publish


常见问题解答

1. 如何解决 "EACCES: permission denied" 错误?

如果你在发布 NPM 包时遇到了 "EACCES: permission denied" 错误,这可能是因为你没有足够的权限来发布 NPM 包。你可以尝试使用 sudo 命令来运行 npm publish 命令。

sudo npm publish

2. 如何解决 "404 Not Found" 错误?

如果你在发布 NPM 包时遇到了 "404 Not Found" 错误,这可能是因为你没有将你的 NPM 包发布到正确的注册表上。你可以尝试使用 --registry 选项来指定要发布的注册表。

npm publish --registry=https://registry.npmjs.org/

3. 如何解决 "EEXIST: file already exists" 错误?

如果你在发布 NPM 包时遇到了 "EEXIST: file already exists" 错误,这可能是因为你已经发布过一个同名的 NPM 包。你可以尝试使用 --force 选项来强制发布 NPM 包。

npm publish --force

4. 如何解决 "ENOTEMPTY: directory not empty" 错误?

如果你在发布 NPM 包时遇到了 "ENOTEMPTY: directory not empty" 错误,这可能是因为你的 NPM 包的 package.json 文件中包含了 files 字段。你可以尝试删除 files 字段,或者使用 --ignore-scripts 选项来忽略 package.json 文件中的脚本。

npm publish --ignore-scripts

5. 如何解决 "ECONNREFUSED: Connection refused" 错误?

如果你在发布 NPM 包时遇到了 "ECONNREFUSED: Connection refused" 错误,这可能是因为你的电脑没有连接到互联网。你可以尝试检查你的网络连接,或者使用 --proxy 选项来指定一个代理服务器。

npm publish --proxy=http://proxy.example.com:8080