gpt4 book ai didi

javascript - 如何在 node.js 中同时使用 CommonJS 和 AMD

转载 作者:搜寻专家 更新时间:2023-10-31 23:18:29 25 4
gpt4 key购买 nike

一个多星期以来,我一直在研究 CommonJs、A​​MD、模块加载和相关问题。我觉得外面没有什么能满足我的需要。我的基本需求是在前端和后端之间无缝共享代码。围绕此存在各种问题,包括客户端的模块格式、脚本加载和模块格式转换/包装。我最近一直在努力解决的问题是如何在 node.js 中同时使用 CommonJS 和 AMD(或类似 AMD 的东西)。

在 node.js 中你无法摆脱 commonJs,所以我的想法是,如果我想使用 AMD,它必须与 commonJs 一起工作。我可以使用哪些工具、库或技术来实现类似 AMD 的功能?

例如,我希望能够编写这样的模块:

var x = require('x')

modules.exports = function(a, callback) {
if(a) {
require(['y','z'], function(y,z) {
callback(x, y.o + z.k)
}
} else {
callback(x, "ok")
}
}

理想情况下:

  • node.js 和类似 amd 的模块都将以 node.js 方式解释路径(注意 node_modules,除非模块路径以“/”、“./”或“../”开头)
  • 不需要在构建步骤中为服务器端进行源代码转换(即模块将在 node.js 中运行,而无需以编程方式转换每个模块)
  • modulerequire 不需要显式传递到类似 amd 的 require 函数中

最佳答案

uRequire是满足此要求的完美工具,它是关于模块格式及其不兼容性之间的互操作性。

本质上,uRequire 将模块从 nodejs 转换或翻译为 AMD,反之亦然,加上在 nodejs 和浏览器上运行的 UMD 格式,或者组合的 .is 不需要浏览器上的 AMD 加载器。

虽然它需要一个构建步骤,但与产品相比这是一个次要问题。

关于javascript - 如何在 node.js 中同时使用 CommonJS 和 AMD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18092818/

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