【发布时间】:2016-05-18 20:25:23
【问题描述】:
我有一个非常标准的节点模块,它使用 babel 来转换我们的代码,然后将其输出到“lib”文件夹。 package.json 将“main”指向“lib/index.js”,这样人们就可以require('my-module')
但是,如果我有一个子目录(例如 my-module/server),那么当他们使用 my-module 时,他们必须执行 require('my-module/lib/server')。我见过人们将构建后的步骤将 package.json 复制到 lib 中,但这对我来说感觉很笨拙和错误。 npm 中是否有任何方法可以指定一个主 目录,从而我的模块的任何 require() 都将从该目录开始?然后我可以让用户在没有 lib 部分的情况下执行 require('my-module/server') ...
【问题讨论】:
-
我认为 require("my-module").server 更习惯,然后明确地让 my-module.js 导出服务器。
-
问题在于 webpack 将在包中包含(或尝试包含)服务器代码。至少在 2.0 出现摇树之前...
-
在这种情况下,我会说将 my-module 分解为子组件并执行 require("my-module-server") 更习惯,它依赖于类似 require("my -模块通用”)。那么“my-module”将是一个超级包,包含方便起见的所有内容,但可以单独包含单独的包。两者都不是您正在寻找的,但两者都是解决问题的常用方法。
-
是的,你可能是对的。 :) 只是希望更简单的东西
-
这个问题还没有答案吗?有什么问题。我不想建立一个索引文件,因为最基本的要求必须做
require('my-module').main。我认为要求您需要的子部分要干净得多。
标签: node.js npm babeljs package.json