惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
V2EX
量子位
博客园 - 司徒正美
IT之家
IT之家
V
Visual Studio Blog
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
Google DeepMind News
Google DeepMind News
Last Week in AI
Last Week in AI
Microsoft Security Blog
Microsoft Security Blog
T
Tailwind CSS Blog
aimingoo的专栏
aimingoo的专栏
GbyAI
GbyAI
Vercel News
Vercel News
B
Blog
大猫的无限游戏
大猫的无限游戏
D
DataBreaches.Net
小众软件
小众软件
罗磊的独立博客
博客园 - 叶小钗
雷峰网
雷峰网
Martin Fowler
Martin Fowler
Hugging Face - Blog
Hugging Face - Blog
WordPress大学
WordPress大学

碎言

不懂就别瞎掰掰:【程序员的常识】写的什么玩意? PrimaryOralMathPack 小学生口算题生成器 AI 辅助编程下的程序设计与代码编写 使用 Next.js 和 Tailwind CSS 构建可编辑和删除的 ToDo 待办事项应用 探索编程新境界:MarsCode 助你一臂之力 使用 Next.js 和 Tailwind CSS 搭建静态图片展示站点并部署到 Vercel AI 辅助编程:免费工具的优缺点及官网一览 GitHub push更新总是失败,写个python脚本解决 把博客从GitHub迁移到到了vercel ComfyUI 和 Flux.1 安装与使用教程 Flux.1 入门必知:硬件、环境、模型 Git项目的子文件夹中的内容无法同步到远程仓库的解决方法 blender流体Fluid使用中没有流体、流体穿模等一些问题的解决方法 博客聚合网站:积薪,竟然关闭了! blender日常使用中的一些技巧 虽然只有我自己在用,但还是更新了碎言博客的源代码, 与其在迷茫中困惑,不如在努力中前进 差点忘了我还有一个博客... 秧歌、博客和AI 终于熬到了新手上路 好久没有更新博客了。。。 老妈大腿骨骨折,最近一直在医院护理 Hello, September! Ubuntu开机自动启动Docker容器运行WordPress Docker 简单快速安装部署WordPress Docker下安装MySQL 加碘盐能防核辐射的话,还怕什么核战争? shields.io 一个简洁、一致、清晰的徽章 Ubuntu下使用root登录ssh的设置 GitHub Actions 构建、部署 Next.js项目
export exports module.exports 这三个命令的区别是什么如何...
J.sky · 2023-07-26 · via 碎言

export exports module.exports 这三个命令中export是是ECMAScript 6(ES6)中引入的模块化规范,exports module.exports是Node.js中用于实现CommonJS模块规范的对象。

export的使用

export关键字用于在一个模块中声明一个或多个可以被其他模块访问的变量、函数或对象。通过export,我们可以将模块中的特定内容暴露给其他模块使用。

node环境下的示例 m_a.js:

// m_a.js
export const name = "suiyan.cc";
export function sayHello() {
    console.log("hello world!");
}

main.js:

// main.js
import { name, sayHello } from './m_a.js';

console.log(name);      // Output: suiyan.cc
sayHello();             // Output: hello world!

如果这样直接运行会报错。

如果你想在Node.js中使用ES6模块化语法,可以将文件的扩展名设置为.mjs,或者在package.json中添加”type”: “module”字段。这样Node.js会将文件视为ES6模块。

exports 和 module.exports

如果你的项目是基于Node.js,可以使用exports或module.exports。这两者是等价的,但不能混用。如果在同一个模块中同时使用了exports和module.exports,后面的那个会覆盖前面的。

代码m_b.js:

//m_b.js
exports.age = 30;
exports.sayBye = function() {
    console.log("Goodbye!");
};

m_c.js:

//m_c.js
module.exports = {
    city: "suiyan.cc",
    population: 888
};

main.js:

//main.js
const moduleB = require('./m_b.js');
const moduleC = require('./m_c.js');

console.log(moduleB.age);       // Output: 30
moduleB.sayBye();               // Output: Goodbye!

console.log(moduleC.city);      // Output: suiyan.cc
console.log(moduleC.population);// Output: 888

记得在package.json中删除”type”: “module”字段,因为已经不需要ES6的支持了。

总结

export关键字用于在一个模块中声明一个或多个可以被其他模块访问的变量、函数或对象,大多用在前端JS文件的编写。如果你的项目是基于Node.js,可以使用exports或module.exports。