node esmodule模式下如何调用commonjs模块

node esmodule模式下如何调用commonjs模块

本文小编为大家详细介绍“node esmodule模式下如何调用commonjs模块”,内容详细,步骤清晰,细节处理妥当,希望这篇“node esmodule模式下如何调用commonjs模块”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

解决方案

1、更换插件;

好像是废话,其实不然。还是以postcss举例,其实早已有issue跟进,但一直还没更新过来。有看到重新实现的例如 postcss-es-modules(下载量不高,暂时没去试过)。

或者通过vite/rollup框架本身的支持去使用插件(后面再讲框架本身是怎么处理的), e.g.

//tailwind.config.jsexportdefault{purge:['./*.html','./src/**/*.{vue,js,ts,jsx,tsx,css}'],darkMode:false,//or'media'or'class'theme:{extend:{},},variants:{extend:{},},plugins:[],}//postcss.config.jsimporttailwindfrom'tailwindcss'importautoprefixerfrom'autoprefixer'importtailwindConfigfrom'./tailwind.config.js'exportdefault{plugins:[tailwind(tailwindConfig),autoprefixer],}//vite.config.jscss:{postcss,}

2、通过nodejs支持的拓展方式(type: "module"情况下),将文件后缀改为.cjs,然后就可以通过 import default from '*.cjs' 导入 commonjs 模块;e.g.

//utils.cjsfunctionsum(a,b){returna+b}module.exports={sum}//index.jsimportutilsfrom'./utils.js'console.log(utils.sum(1,2))

3、通过package.json的 exports 字段分别标志不同模块的入口文件(这也是大部分三方库常用做法); e.g.

//package.json"exports":{"import":"./index.js","require":"./index.cjs"}

问题记录

1、nodejs分别是怎么处理.mjs/.cjs后缀文件的?

nodejs总是以 esmodule 模块加载.mjs文件,以 commonjs 加载 .cjs 文件。当package.json设置了 type: "module" 时,总是以 esmodule 加载.js文件。

读到这里,这篇“node esmodule模式下如何调用commonjs模块”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注恰卡编程网行业资讯频道。

发布于 2022-04-03 22:39:33
收藏
分享
海报
0 条评论
18
上一篇:C语言怎么利用栈和队列实现回文检测功能 下一篇:Python OpenCV基本功能怎么用
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码