如果我在 src
目录中发布一个带有源文件的 Node 模块,而人们想要在他们的项目中导入一个文件,他们需要指定模块的完整路径。
例子:
结构:
my-module
--src
----index.js
----something-else.js
package.json
:
{
"name": "my-module",
"root": "src/index.js"
}
实现:
import myModule from 'my-module';
import somethingElse from 'my-module/src/something-else';
(或使用require
)
var myModule = require('my-module');
var somethingElse = require('my-module/src/something-else');
有什么方法可以设置包,让它知道 src
是我的源根,允许用户使用 my-module/something 要求
?somethingElse
-否则
如果这不可能,那么在预发布时将文件从 src
中提取出来是好是坏?
最佳答案
根据我的经验,在这种情况下通常做的是:
- 在根目录中有一个
something-else.js
文件,它只包含require('src/something-else');
然后用户可以只require ('my-module/something-else');
在这种情况下,您有一个更好的 API,这意味着将来对目录结构的任何更改都不会破坏您的用户代码。即,您可以将something-else
移动到my-module/other-sources/something-else
并且您只需要更改根文件,您的用户代码仍然可以工作。 - 您创建一个核心
my-module
,它需要您的模块可用的所有内容,然后用户可以通过myModule.somethingElse
选择模块的哪个部分
否则,我还没有找到明确设置源根目录的方法。如果该选项确实存在,它可能会很方便。
关于javascript - 是否可以设置 Node 模块的根目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37520524/