如何加载 commonJS 模块的子路径?

How to load a commonJS module's child path?

我发现有很多 public javascript 库可以像这样暴露一个子路径:

import { Button } from 'antd/lib/button';

但是当我尝试在 npm 中加载我自己的模块时,例如:

const AdaBoost = require('mlhelper/algorithm/AdaBoost');

//or
import AdaBoost from 'mlhelper/algorithm/AdaBoost';

出现'module not found'的错误。

那么如何让我的模块的子路径可以按需加载呢?

npm 使用文件系统来解析包的各个部分。因此,该文件应该位于包 mlhelper 内的 ./algorithm/AdaBoost.js./algorithm/AdaBoost/index.js 中。您还应该从该文件中导出。有关其工作原理的说明,请参阅 this blog post