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中删除了“类型”:“模块” 将

我用Javascript将我的第一个模块上传到npm,我希望它支持导入和请求。这可能吗

模块如下所示:

是的,当我尝试
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并发布。。。