如何实现按子路径引入模块

看到许多公共模块都可以通过子路径进行引入,比如ant-desin:


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

但是我自己写的模块发布到npm上,同样尝试使用这种方式引入其中子路径下某一个入口文件,发现会报错:


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


//or

import AdaBoost from 'mlhelper/algorithm/AdaBoost';

直接就报module not found的错误。


请教如何做才能实现这种按需加载?


慕姐8265434
浏览 476回答 2
2回答

沧海一幻觉

你需要打包成多份文件, 而不是单一的 bundle 文件. mlhelper/algorithm/AdaBoost 会被解析成 node_modules/mlhelper/algorithm/AdaBoost 显然你的 mlhelper 包里没有 algorithm 目录. 你可以 require('mlhelper/src/algorithm/AdaBoost') 前提是你的使用环境配置了对 node_modules 里面 ts 内容的编译.你需要配置 tsconfig.json 将你的 src 的每个以文件编译到另一个 lib 目录下.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript