NodeJS 需要模块命名空间
NodeJS require module namespaces
我考虑过在 npmjs 上发布我的模块分成 2 个或更多部分(版本化),但两者都很容易要求/导入。
结果应该是:
//index1.js
const themodule = require('mymodule');
//index2.js
const themodule = require('mymodule/v2');
//index.mjs
import themodule from 'mymodule/v2';
有点这种风格。
我尝试在 package.json:main 属性 字段指向的路径中创建一个名为 v2
的子文件夹。没用。
我似乎无法弄清楚如何使用模块名称中的“/”/将其放入其中。
一个有用的提示/推动正确的方向会很棒。
编辑:
文件夹结构:
package.json main->lib/mod.js
lib/mod.js
lib/v2/mod.js
所以解决方案似乎与@Bergur 指出的完全一样:
package.json:main -> lib/index.js
lib/index.js (version 1)
v2/package.json:main -> ./index.js (just needs a handful basic fields)
v2/index.js (version 2)
这可以使用 require 进行上述处理。不确定导入。
我考虑过在 npmjs 上发布我的模块分成 2 个或更多部分(版本化),但两者都很容易要求/导入。
结果应该是:
//index1.js
const themodule = require('mymodule');
//index2.js
const themodule = require('mymodule/v2');
//index.mjs
import themodule from 'mymodule/v2';
有点这种风格。
我尝试在 package.json:main 属性 字段指向的路径中创建一个名为 v2
的子文件夹。没用。
我似乎无法弄清楚如何使用模块名称中的“/”/将其放入其中。
一个有用的提示/推动正确的方向会很棒。
编辑: 文件夹结构:
package.json main->lib/mod.js
lib/mod.js
lib/v2/mod.js
所以解决方案似乎与@Bergur 指出的完全一样:
package.json:main -> lib/index.js
lib/index.js (version 1)
v2/package.json:main -> ./index.js (just needs a handful basic fields)
v2/index.js (version 2)
这可以使用 require 进行上述处理。不确定导入。