gpt4 book ai didi

javascript - UMD 和 CommonJS (CJS) 包文件夹有何不同,我应该使用哪个?

转载 作者:可可西里 更新时间:2023-11-01 02:40:03 24 4
gpt4 key购买 nike

我用 package.json 安装了 reactjs 和 react-dom

    "dependencies": {
"bootstrap": "^v4.1.1",
"popper.js": "^1.14.3",
"react": "^v16.4.1",
"react-dom": "^16.4.1"
}

它正确下载了react文件夹和react-dom文件夹。

这两个文件夹都有cjsumd文件夹,里面有很多JavaScript文件。

对我来说,它无法找到两个文件夹中文件之间的差异。

像这样:

    URL: node_modules/react/umd
react-development.js
react-production.min.js

URL: node_modules/react/cjs
react-development.js
react-production.min.js

与 react-dom 几乎相同。它还有 cjsumd 文件夹,我不知道应该使用哪个文件夹中的哪个文件来开发 React 应用程序或网站。

最佳答案

JavaScript 最初仅用于交互式浏览器。对于 NodeJS,它用于非浏览器上下文。由于这个和其他因素,模块存在不兼容的格式:

  • CommonJS ” 规范描述了 exports 对象的使用,该对象是用于声明和发现从模块导出的名称的 API。不允许在交互式浏览器中加载 CommonJS 模块。 NodeJS 是最流行的 CommonJS 格式实现。

  • Asynchronous Module Definition ”(AMD)描述了如何在假设它们将被加载到交互式浏览器中的情况下捆绑 JavaScript 模块。 RequireJS 是更流行的模块支持库之一,它使用 AMD 模块。

  • 由于 AMD 和 CommonJS 都非常流行并且彼此之间无法理解,“Universal Module Definition ” (UMD) 是一种模式,可以制作一个可以被两者使用的模块,但代价是格式更复杂。

  • 最近,ECMAScript 2015 defines export and import syntax (与上述所有不同)以支持模块。

您应该使用哪个?您需要根据构建系统中将使用这些模块的内容来回答这个问题。

今天(2022 年 2 月),最有可能的答案是:使用 ECMAScript 模块,这些模块现已支持多年,在 NodeJS 中和 major browsers .

如果您需要支持非常过时的 JavaScript 引擎,您可能需要一种较早的格式,但您应该有一个时间表来放弃对这些引擎的支持。

关于javascript - UMD 和 CommonJS (CJS) 包文件夹有何不同,我应该使用哪个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51233240/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com