我试图创建一对React组件的npm包。这些将用于其他几个项目,所以我希望它们在一个单独的包中。
我希望能够使用此软件包从应用程序中require('comps/a-component')
。我可以将所有组件放在模块的根目录中,但我不想这样做。相反,我希望在src / components /中包含所有组件,因为root将过度拥挤。
这似乎是一件微不足道的事情,但我还没有成功。我查看了https://docs.npmjs.com/files/package.json试图找到设置根或其他内容的选项。有没有人对如何实现这个有任何想法?
谢谢!
答案 0 :(得分:0)
如果你的应用是这样的:
- AppFolder
|-index.js
|-Readme.md
|-/src
|-app.js
|-anotherThing.js
如果我想使用anotherThing.js
,我可以var anotherThing = require('./src/anotherThing');
。除非我不理解你的问题。
答案 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包。