亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何分發帶有子模塊的 es6 包

如何分發帶有子模塊的 es6 包

墨色風雨 2022-05-26 11:28:18
我正在嘗試在 npm 上發布一個包。我不確定如何表達我正在嘗試做的事情..也許包裝“子模塊”?縮寫的目錄結構是:- package.json- src/  - a.js  - b.js- dist/  - a.js  - b.js我的構建腳本使用 Babel 轉譯到dist具有與src/. 我希望消費者從a.js模塊中導入函數,如下所示:import {foo} from "mypackage/a";不是import {foo} from "mypackage/dist/a";如果我添加index.js到mypackage/并導出a我可以做import {a} from "mypackage"但這不是我想要的……發布包的標準方法是什么,以便可以像這樣導入“子模塊”,或者有人可以指出我做這種事情的回購嗎?
查看完整描述

1 回答

?
瀟瀟雨雨

TA貢獻1833條經驗 獲得超4個贊

如果我理解,應該有兩個選項可供您選擇。


首先,讓我嘗試解釋一下 Node 是如何處理帶有斜線的 Node 子模塊的。當您使用斜杠導入模塊時,Node 將嘗試在根文件夾中查找具有斜杠后指定名稱的文件。在您的情況下,它將是a.js. 如果沒有找到,Node 將嘗試查找a包含該文件的目錄index.js。如果未找到文件,則不導入任何內容。


回到您的問題,您可以a.js在根文件夾中創建包含以下導出的文件:


export * from './dist/a';

// The traditional export should look like this, in case I have wrong ES6 export

module.exports = require('./dist/a')

或者稍微改變一下項目的結構,使文件a和b位于它們的特定目錄中。


例如:


- package.json

- src/

  - a.js

  - b.js

- a/

  - index.js

- b/

  - index.js


查看完整回答
反對 回復 2022-05-26
  • 1 回答
  • 0 關注
  • 118 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號