在component.js不在模块根目录中时需要('模块/组件')?

时间:2015-03-19 10:49:59

标签: node.js npm package.json

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

我希望能够使用此软件包从应用程序中require('comps/a-component')。我可以将所有组件放在模块的根目录中,但我不想这样做。相反,我希望在src / components /中包含所有组件,因为root将过度拥挤。

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

谢谢!

2 个答案:

答案 0 :(得分:0)

如果你的应用是这样的:

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

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

或许你的意思是the main attribute in package.json

答案 1 :(得分: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包。