我正在制作一个NPM包,我想知道如何注册多个入口点,以便用户可以选择引入整个库或只是它们打算使用的部分。
例如引入整个库:
const mainLib = require('main-lib');
或只带一部分:
const subLib1 = require('sub-lib-1');
const subLib2 = require('sub-lib-2');
使用package.json的main属性接受多个值似乎很直观,但根据文档似乎并非如此。
答案 0 :(得分:18)
"主"定义要在仅使用包名称调用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