npm多个入口点

Eph*_*pox 14 javascript node.js npm

我正在制作一个NPM包,我想知道如何注册多个入口点,以便用户可以选择引入整个库或只是它们打算使用的部分.

例如,引入整个库:

const mainLib = require('main-lib');
Run Code Online (Sandbox Code Playgroud)

或者只带一部分:

const subLib1 = require('sub-lib-1');
const subLib2 = require('sub-lib-2');
Run Code Online (Sandbox Code Playgroud)

我觉得让package.json的主要属性接受多个值似乎是直观的,但根据文档似乎并非如此.

ple*_*eup 19

"main"定义在仅使用包名称调用require()时要加载的模块.但您也可以在该包中要求特定文件.

例如,使用以下包装:

- mypackage/
   - main.js   <- "main" in pkg.json
   - moduleA.js
   - src/
     - index.js
     - filaA.js
     - fileB.js
   - package.json
Run Code Online (Sandbox Code Playgroud)

以下内容有效:

require( 'mypackage' )           // resolve to main.js
require( 'mypackage/moduleA' )   // resolve to moduleA.js
require( 'mypackage/src' )       // resolve to src/index.js
require( 'mypackage/src/fileA' ) // resolve to src/fileA.js
Run Code Online (Sandbox Code Playgroud)