1

我正在尝试创建一个包含几个 React 组件的 npm 包。这些将在其他几个项目中使用,所以我希望它们在一个单独的包中。

我希望能够做的是require('comps/a-component')使用这个包的应用程序。我可以通过将所有组件放在模块的根目录中来做到这一点,但我不想这样做。相反,我希望将所有组件都放在 src/components/ 中,因为根目录会过于拥挤。

这似乎是一件微不足道的事情,但我还没有成功。我浏览了https://docs.npmjs.com/files/package.json试图找到一个选项来设置根或其他东西。有没有人对如何实现这一目标有任何想法?

谢谢!

4

2 回答 2

0

如果你的应用是这样的:

- AppFolder
   |-index.js
   |-Readme.md
   |-/src
      |-app.js
      |-anotherThing.js

如果我想用anotherThing.js,我可以做var anotherThing = require('./src/anotherThing');。除非我无法理解你的问题。

或者你的意思main属性package.json

于 2015-03-19T11:06:46.007 回答
0

您可以在 node_modules 目录中将符号链接到您的组件目录。这将允许您从应用程序中的任何位置要求您的组件,就像您说的那样:require('comps/a-component'). 要在 linux 或 osx 上创建符号链接,您可以执行以下操作

cd ./node_modules; ln -snf ../src/components comps;

另一种选择是从每个组件中实际创建 npm 包,这样您就可以将它们列在 package.json 的依赖项中。

在 npm 2.0 中发布的另一个有希望的选项是本地依赖项。这允许您指向文件系统上的本地 npm 包。在这种情况下,每个组件都必须编写为带有 package.json https://docs.npmjs.com/files/package.json#local-paths的 npm 包

于 2015-03-19T11:07:54.690 回答