Javascript 我如何做npm模块支持导入和要求?
我用Javascript将我的第一个模块上传到npm,我希望它支持导入和请求。这可能吗 模块如下所示:Javascript 我如何做npm模块支持导入和要求?,javascript,node.js,npm,node-modules,Javascript,Node.js,Npm,Node Modules,我用Javascript将我的第一个模块上传到npm,我希望它支持导入和请求。这可能吗 模块如下所示: 是的,当我尝试require()您的软件包时,我收到了相同的错误。但是,通过将包代码转换为兼容的commonjs,我成功地实现了这两个功能(import…from和require()) 您应该尝试将包发布为commonjs(require())模块,然后从节点选择应用程序端的任一语法 为了使这两种语法都能正常工作,我在代码中做了如下更改 从package.json中删除了“类型”:“模块” 将
是的,当我尝试
require()
您的软件包时,我收到了相同的错误。但是,通过将包代码转换为兼容的commonjs,我成功地实现了这两个功能(import…from
和require()
)
您应该尝试将包发布为commonjs
(require()
)模块,然后从节点选择应用程序端的任一语法
为了使这两种语法都能正常工作,我在代码中做了如下更改
package.json
中删除了“类型”:“模块”
main
条目从“main”:“ProLog.mjs”更新为“main”:“ProLog.js”
ProLog.js
文件中的import…from
语法替换为require()
导出类ProLog
更新为module.exports=ProLog
我的模块是用模块sintax编写的。但是,当我尝试使用require导入时,在控制台中打印此错误internal/modules/cjs/loader.js:1025抛出新的ERR_require_ESM(文件名);^Error[ERR\u REQUIRE\u ESM]:必须使用import来加载ES模块:D:\Desktop\test pro根据我有限的经验,你可以
导入一个commonjs模块-但你不能REQUIRE
一个ESM模块-因此,在我需要两者的情况下-我以commonjs的形式编写代码,并提供了一个导出ESM模块文件,用于导入和导出commonjs—当然,如果您真的想坚持ESM语法,可以编写ESM,然后使用某种“transpiler”将其转换为commonjs并发布。。。