说我想在 npm 包中共享一个简单的 react 组件,让其他人使用它,我必须这样做吗?

import SomeComponent from './components/SomeComponent';

module.exports = {
  SomeComponent: SomeComponent
}

引用
https://github.com/alanbsmith/npm-example-module/blob/master/lib/index.js

在项目的 package.json 中可以看到包的主文件是 build/index.js,但是为什么作者不直接导出 components/SomeComponent ,而是创建了一个包装器呢?我知道他使用 babel,这是为了支持旧浏览器的代码,但为什么在这种情况下使用 module.exports?

最佳答案

如果您使用 es6 导入,您也应该使用 es6 导出以保持一致性。

import SomeComponent from './components/SomeComponent'
export { SomeComponent }
并在您的 package.json 中将 main 字段设置为构建后的文件。如
{
   "main": "lib/index.js"
}
然后人们可以像这样导入它:
import { SomeComponent } from 'my-lib'
但是,您所遵循的示例看起来确实过时了,并且没有遵循很多好的做法。 Here's a more modern-looking solution that you'll probably have less trouble with.

10-08 00:56