鍍金池/ 問答/Linux  網(wǎng)絡(luò)安全  HTML/ 如何實現(xiàn)按子路徑引入模塊

如何實現(xiàn)按子路徑引入模塊

看到許多公共模塊都可以通過子路徑進(jìn)行引入,比如ant-desin:

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

但是我自己寫的模塊發(fā)布到npm上,同樣嘗試使用這種方式引入其中子路徑下某一個入口文件,發(fā)現(xiàn)會報錯:

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

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

直接就報module not found的錯誤。

請教如何做才能實現(xiàn)這種按需加載?

回答
編輯回答
黑與白

你需要打包成多份文件, 而不是單一的 bundle 文件. mlhelper/algorithm/AdaBoost 會被解析成 node_modules/mlhelper/algorithm/AdaBoost 顯然你的 mlhelper 包里沒有 algorithm 目錄. 你可以 require('mlhelper/src/algorithm/AdaBoost') 前提是你的使用環(huán)境配置了對 node_modules 里面 ts 內(nèi)容的編譯.

你需要配置 tsconfig.json 將你的 src 的每個以文件編譯到另一個 lib 目錄下.

2018年4月23日 02:35
編輯回答
孤島

就是類似這樣的操作:https://github.com/Jiasm/tetr...

單獨創(chuàng)建一個index.js文件做索引,在里邊把其他的module引入進(jìn)來即可。

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 '.'
2018年5月19日 18:41