javascript - 是否可以设置 Node 模块的根目录?

标签 javascript node.js npm

如果我在 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 中提取出来是好是坏?

最佳答案

根据我的经验,在这种情况下通常做的是:

  1. 在根目录中有一个 something-else.js 文件,它只包含 require('src/something-else'); 然后用户可以只 require ('my-module/something-else'); 在这种情况下,您有一个更好的 API,这意味着将来对目录结构的任何更改都不会破坏您的用户代码。即,您可以将 something-else 移动到 my-module/other-sources/something-else 并且您只需要更改根文件,您的用户代码仍然可以工作。
  2. 您创建一个核心 my-module,它需要您的模块可用的所有内容,然后用户可以通过 myModule.somethingElse
  3. 选择模块的哪个部分

否则,我还没有找到明确设置源根目录的方法。如果该选项确实存在,它可能会很方便。

关于javascript - 是否可以设置 Node 模块的根目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37520524/

相关文章:

xml - 如何将身份验证 header 传递给node-soap

node.js - 如何使用 Node 将 ReactJS 组件渲染为 HTML 字符串?

javascript - 为什么我没有实体的引用 ID?

macos - 通过 PIP 安装 NPM,但得到 "npm: command not found"

javascript - 在 C# 中将变量传递给 imagebutton onclientclick 中的 javascript

javascript - 从 DynamoDB 响应中删除数据类型描述符的推荐方法是什么?

javascript - 了解 google-maps-react 库

javascript - npm 构建后 Vue 实例方法中的断点

javascript - 墨水Filepicker被Facebook IOS应用中的墙链接破坏了

javascript - Vue.js + Vuex : How to mutate nested item state?