[英]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.