浅析node esmodule模式下怎么调用commonjs模块

本篇文章来继续node的学习,介绍一下esmodule模式下怎么调用commonjs模块,希望对大家有所帮助!

浅析node esmodule模式下怎么调用commonjs模块

最近写nodejs脚本较多,遇到一个问题。修改了 package.json 的 type: “module” 后,部分工具无法正常使用(e.g. postcss-cli)。

本文主要是记录下解决在esmodule模式下,如何使用 commonjs 模块的问题。

解决方案

1、更换插件;

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

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

// tailwind.config.jsexport default {  purge: ['./*.html', './src/**/*.{vue,js,ts,jsx,tsx,css}'],  darkMode: false, // or 'media' or 'class'  theme: {    extend: {},  },  variants: {    extend: {},  },  plugins: [],}// postcss.config.jsimport tailwind from 'tailwindcss'import autoprefixer from 'autoprefixer'import tailwindConfig from './tailwind.config.js'export default {  plugins: [tailwind(tailwindConfig), autoprefixer],}// vite.config.jscss: {  postcss,}

登录后复制

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

// utils.cjsfunction sum(a, b) {  return a + b}module.exports = {  sum}// index.jsimport utils from './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相关知识,请访问:nodejs 教程!

以上就是浅析node esmodule模式下怎么调用commonjs模块的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2701817.html

(0)
上一篇 2025年3月7日 19:18:32
下一篇 2025年2月18日 05:37:42

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 聊聊node中的fs模块、path模块

    本篇文章带大家了解一下node中的fs文件系统模块和path路径模块,希望对大家有所帮助! fs文件系统模块 fs 模块是 Node.js 官方提供的、用来操作文件的模块。它提供了一系列的方法和属性,用来满足用户对文件的操作需求。 fs.r…

    2025年3月7日
    200
  • 聊聊V8的内存管理与垃圾回收算法

    本篇文章带大家了解一下v8引擎的内存管理与垃圾回收算法,希望对大家有所帮助! 众所周知,JS是自动管理垃圾回收的,开发者不需要关心内存的分配与回收。而且垃圾回收机制在前端面试中也是常考的部分。本文主要讲解V8的分代垃圾回收算法,希望阅读本文…

    2025年3月7日 编程技术
    200
  • 浅析利用node怎么获取mac系统版本

    利用node怎么获取mac系统版本?下面本篇文章给大家介绍一下利用node优雅地获取 mac 系统版本的方法,希望对大家有所帮助! 今天突然碰到了一个兼容性需求,需要根据不同 macOS 版本,进行不同的兼容性处理。 没想到看似简单的需求,…

    2025年3月7日
    200
  • node爬取数据实例:聊聊怎么抓取小说章节

    node怎么爬取数据?下面本篇文章给大家分享一个node爬虫实例,聊聊利用node抓取小说章节的方法,希望对大家有所帮助! 准备用electron制作一个小说阅读工具练练手,那么首先要解决的就是数据问题,也就是小说的文本。 这里准备使用no…

    2025年3月7日 编程技术
    200
  • Vercel是什么?怎么部署Node服务?

    vercel是什么?本篇文章带大家了解一下vercel,并介绍一下在vercel中部署 node 服务的方法,希望对大家有所帮助! 之前在写node时,曾经就强缓存和协商缓存写过两个demo,但缓存要在服务端做,只能贴上代码,不能在网页上感…

    2025年3月7日 编程技术
    200
  • 什么是JWT?JWT怎么在nodejs中使用?

    什么是jwt?本篇文章带大家了解一下jwt,介绍一下jwt在node中的应用,以及jwt的优缺点,希望对大家有所帮助! 什么是JWT JWT也就是JSON Web Token的缩写,也就是为了在网络应用环境中一种认证解决方案,在传统的认证机…

    2025年3月7日 编程技术
    200
  • 浅析nodejs项目中package.json的常见属性

    本篇文章带大家了解一下node项目中的package.json配置文件,聊聊package.json中一些常见配置属性、环境相关属性、依赖相关属性和三方属性,希望对大家有所帮助! npm是前端开发人员广泛使用的包管理工具,项目中通过pack…

    2025年3月7日
    200
  • 浅谈Node第三方框架Express的使用方法

    本篇文章带大家了解一下node第三方框架express,简单聊聊如何使用好express框架,希望对大家有所帮助! 1.Express框架介绍 1.Express是node开发中一个非常重量级的第三方框架,它对于NodeJS服务端就相当于J…

    2025年3月7日
    200
  • 深入了解Node的模块机制,聊聊模块实现流程

    本篇文章带大家了解一下commonjs规范和node的模块机制,介绍一下node实现commonjs规范的基本流程,希望对大家有所帮助! 在CommonJs规范提出之前,Javascript是没有模块系统的,这意味着我们很难开发大型的应用,…

    2025年3月7日
    200
  • 浅析node中path路径模块的一些API

    本篇文章带大家了解一下node的path路径模块,介绍path内置模块的一些api,也准备了一个案例,用于练手,希望对大家有所帮助! 2. 使用 fs 模块,读取需要被处理的 HTML 文件 3. 自定义 resolveCSS 方法,来写入…

    2025年3月7日
    200

发表回复

登录后才能评论