npm多个入口点

19

我正在制作一个NPM包,想知道如何注册多个入口,以便用户可以选择引入整个库或仅引入他们想要使用的部分。

例如,要引入整个库:

const mainLib = require('main-lib');

或者只带来其中的一部分:
const subLib1 = require('sub-lib-1');
const subLib2 = require('sub-lib-2');

对我来说,让package.json的主要属性接受多个值似乎是很直观的,但根据文档似乎并不是这样。

1个回答

26

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

例如,对于以下包:

- mypackage/
   - main.js   <- "main" in pkg.json
   - moduleA.js
   - src/
     - index.js
     - filaA.js
     - fileB.js
   - package.json
以下是有效的:
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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接