gpt4 book ai didi

javascript node module.exports/require() 前端代码

转载 作者:数据小太阳 更新时间:2023-10-29 06:11:05 26 4
gpt4 key购买 nike

我一直在研究使用像 SVGO 这样的库能够在前端清理用户提交的 SVG 代码。 SVGO 是一个基于 node.js 的库,通常在后端运行,所以我一直在努力思考如何将 SVG 代码从前端发送到后端,然后将清理过的代码反刍到前端。

正是在我试图弄清楚这一点的时候,我检查了他们的 web app example , 经检查,在链接脚本中运行代码,我通常会在前端的后端看到这些代码。特别是,它们的许多函数都具有签名 ( full script ):

1: [function(require, module, exports) {
"use strict";
var loadScripts = require("./load-scripts"),
...
module.exports = exportedFunction;
}]

非常令人困惑,因为这通常是我与后端关联的 JS,特别是 requiremodule.exports 语法等等。

问题

  1. 这只是他们在前端的整个库 SVGO 吗?他们是否手动重写它以与前端兼容?或者这就是像 browserfy 这样的工具的用途?
  2. 如果是这样,在前端和后端运行它有什么好处?一个会更容易吗/是否有一些关于在哪里使用的通用指南?
  3. 乍一看,似乎只在浏览器中运行 SVGO 库并在那里进行转换会更容易(因为我不必调用后端)。那里的一般做法是什么?

感谢任何见解。我正在努力确保以最合理/符合 Web 标准的方式构建我的项目。

最佳答案

答案:

  1. 他们正在使用类似 browserify 的模块加载器或 requirejs允许在浏览器中使用 commonjs 模块。这并不意味着所有库都可以在客户端工作,例如,使用 Node io 模块将无法工作。

  2. 在发送之前在浏览器端进行一些清理会很有用(节省几 kBytes)。浏览器具有免费的优势,您无需为托管在客户端运行的代码付费,一些可选清理可以在浏览器上运行。 但是:见3.

  3. 即使客户端清理很容易,您也应该始终在后端检查和清理用户的输入,尤其是 .svg文件,因为它们可以包含 <script>可能允许 XSS 的标签。

关于javascript node module.exports/require() 前端代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30886448/

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