[英]Node.JS export ES Object into NPM package?
我有一個 ES5 對象/函數,我試圖在 NPM package 中使用它。 該 object 位於命名空間中,例如
MY_NAMESPACE.myObject = function(){...}
其中 MY_NAMESPACE 只是一個 object。 對於 web,我只需鏈接對象/函數所在的 JS 文件,然后執行
let whatever = new MY_NAMESPACE.myObject();
我已將源代碼保存為my_function.js
。
我像這樣創建了一個 npm package ,以便將其安裝在我的應用程序中
{
"name": "whatever",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "whatever",
"license": "Apache-2.0",
"exports" :{
"./my_function.js" : "./my_function.js"
}
}
當我在本地安裝 package 時,我可以看到my_function.js
在node_modules/whatever
我現在如何在我的應用程序中引用/導入my_function.js
,然后能夠調用
let whatever = new MY_NAMESPACE.myObject();
一些糟糕的 Node.JS 文檔提到了添加 ES 模塊的.mjs 文件,但找不到示例/教程......我也試圖不向my_function.js
添加任何類似module.exports
的內容,因為該文件已更新不斷地在網絡/前端環境中使用。
所以基本上,我試圖在 NPM package 中附加一個 .js 文件,並希望在我的應用程序中提供它的內容。 我希望,在 package 的index.js
中添加一些內容會呈現文件中聲明的對象,這些對象可在我的應用程序中使用......我只是不知道 go 從這里到哪里。
公開 function 的一種模式是使用module.exports ,如下所示:
# my_function.js
MY_NAMESPACE = {};
MY_NAMESPACE.myObject = function(){...};
module.exports = MY_NAMESPACE;
然后它可以被同一目錄中的另一個模塊使用:
# consumer JS file
let MY_NAMESPACE = require('./my_function');
let test = new MY_NAMESPACE.myObject();
如果你真的想 package up my_function.js 在一個單獨的 node.js package 中(例如,如果你需要在項目之間共享它),有幾個額外的步驟。 該文檔是一個很好的起點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.