编写 npm 包

创建新的 npm 包

mkdir my-package
cd my-package/
meteor npm init

最后一个命令创建一个package.json文件并提示您输入包信息。您可以跳过除nameversionentry point之外的所有内容。您可以使用默认的index.js作为entry point。在此文件中,您设置包的导出内容。

// my-package/index.js
exports.myPackageLog = function() {
  console.log("logged from my-package");
};

现在包含此包的应用程序可以执行以下操作

import { myPackageLog } from 'my-package'

myPackageLog(); // > "logged from my-package"

在为您的 npm 包选择名称时,请务必遵循npm 指南

包含在您的应用程序中

当您为您的应用程序开发新的 npm 包时,有两种方法可以将该包包含在您的应用程序中

  • 在 node_modules 中:将包放置在应用程序的node_modules/目录中,并将包添加到源代码控制中。当您希望所有内容都位于单个存储库中时,请执行此操作。
cd my-app/node_modules/
mkdir my-package
cd my-package/
meteor npm init
git add -f ./ # or use a git submodule
  • npm link:将包放置在应用程序目录之外的单独存储库中,并使用npm link。当您希望在多个应用程序中使用该包时,请执行此操作。
cd ~/
mkdir my-package
cd my-package/
meteor npm init
cd ~/my-app/
meteor npm link ~/my-package

其他开发人员也需要运行npm link命令。

使用任一方法后,编辑my-app/package.jsondependencies属性,添加"my-package": "1.0.0"(使用您在meteor npm init期间选择的相同版本号)。

发布您的包

您可以通过将其发布到 npm 注册表与其他人共享您的包。虽然大多数包都是公开的,但您可以使用私有模块控制谁可以查看和使用您的包。

要公开发布,请按照这些说明操作。完成后,任何人都可以使用npm install --save your-package将其包添加到他们的应用程序中。

如果您想在开发过程中共享包,我们建议使用上述方法而不是注册表。如果您使用注册表,则每次更改包时,都需要递增版本号、发布,然后在您的应用程序内运行npm update my-package

使用本地版本覆盖包

如果您需要修改包以执行已发布版本未执行的操作,则可以在计算机上编辑包的本地版本。

假设您想修改left-pad npm 包。如果您还没有,请在您的应用程序目录中运行

meteor npm install --save left-pad

现在left-pad包含在您的package.json中,并且代码已下载到node_modules/left_pad/。使用以下命令将新目录添加到源代码控制中:

git add -f node_modules/left_pad/

现在您可以编辑包、提交和推送,您的团队成员将获得您的包版本。为了确保您的包在npm update期间不会被覆盖,请将package.json中的默认脱字符号版本范围更改为精确版本。

之前

"left-pad": "^1.0.2",

之后

"left-pad": "1.0.2",

另一种方法是为包维护一个单独的存储库,并将package.json版本号更改为 git URL 或 tarball,但每次编辑单独的存储库时,您都需要提交、推送和npm update left-pad

在 GitHub 上编辑
// 搜索框