如何实现按子路径引入模块
看到许多公共模块都可以通过子路径进行引入,比如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
的错误。
请教如何做才能实现这种按需加载?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你需要打包成多份文件, 而不是单一的 bundle 文件.
mlhelper/algorithm/AdaBoost
会被解析成node_modules/mlhelper/algorithm/AdaBoost
显然你的mlhelper
包里没有 algorithm 目录. 你可以require('mlhelper/src/algorithm/AdaBoost')
前提是你的使用环境配置了对 node_modules 里面 ts 内容的编译.你需要配置 tsconfig.json 将你的
src
的每个以文件编译到另一个lib
目录下.就是类似这样的操作:https://github.com/Jiasm/tetr...
单独创建一个index.js文件做索引,在里边把其他的module引入进来即可。