我正在尝试导出我的 npm 包。如何正确地做到这一点?

I am trying to export my npm package. How to do it properly?

我创建了一个 npm 包

class Person {
     constructor() {}
     sayHello() {console.log("Hello World!")}
}

module.exports = Person;

完成 npm i my-package 后,它被添加到我的项目中。

在我的 index.js 上,我正在执行以下操作:

const Person = require('my-package');

const david = new Person();

但是我得到这个错误: Error: Cannot find module '/Users/me/test/node_modules/my-package/app.js'. Please verify that the package.json has a valid "main" entry

当我这样要求时它工作正常:

const Person = require('./node_modules/my-package/person.js');

const david = new Person();

我做错了什么? 如何使用 const Person = require('my-package');

设置我的包以导出 Person

如果您希望能够像 const Person = require("my-package") 那样导入它,您需要默认导出人物 class:

module.exports = Person;

还要确保 package.json 中的 main 属性 设置为您想要的任何根文件。

我的 package.json 文件中的 main 指向 app.js(npm 默认)。

我不得不将其更改为指向我的实际主。

{
  "name": "my-package",
  "version": "1.0.0",
  ...

  "main": "index.js", // <------ I changed it from app.js to my actual main
   
   ...
}

感谢@evolutionxbox 的评论。对我帮助很大。