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

发布于 2022-09-07 16:08:43 字数 421 浏览 24 评论 0

看到许多公共模块都可以通过子路径进行引入,比如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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

花之痕靓丽 2022-09-14 16:08:43

你需要打包成多份文件, 而不是单一的 bundle 文件. mlhelper/algorithm/AdaBoost 会被解析成 node_modules/mlhelper/algorithm/AdaBoost 显然你的 mlhelper 包里没有 algorithm 目录. 你可以 require('mlhelper/src/algorithm/AdaBoost') 前提是你的使用环境配置了对 node_modules 里面 ts 内容的编译.

你需要配置 tsconfig.json 将你的 src 的每个以文件编译到另一个 lib 目录下.

玩物 2022-09-14 16:08:43

就是类似这样的操作:https://github.com/Jiasm/tetr...

单独创建一个index.js文件做索引,在里边把其他的module引入进来即可。

a.js

export default XXX

b.js

export default XXX

index.js

export {default as a} from 'a.js'
export {default as b} from 'b.js'

app.js

import {a, b} from '.'
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文