这requireJS的事情让我感到困惑

时间:2019-01-24 14:44:39

标签: javascript reactjs

嗨,我正试图了解这种隐写术工具https://github.com/petereigenschink/steganography.js

我在我的react项目中使用了它。关于 RequireJS 的内容已经让我感到困惑。我可以将其转换为普通的,不太可怕的javascript吗?

;(function (name, context, factory) {

  // Supports UMD. AMD, CommonJS/Node.js and browser context
  if (typeof module !== "undefined" && module.exports) {
    module.exports = factory();
  } else if (typeof define === "function" && define.amd) {
    define(factory);
  } else {
    context[name] = factory();
  }

  })("steg", this, function () {}

我需要能够使用此功能或我的App.js文件中的任何功能。有指针吗?

这是React开发服务器抛出的错误:     编译失败。

./src/steganography.js
  Line 12:  'define' is not defined  no-undef
  Line 13:   'define' is not defined  no-undef

1 个答案:

答案 0 :(得分:0)

由于javascript最初不包含任何处理模块的方法(即,将多个文件中的代码链接在一起),因此发明了几种不同的处理方法。该代码块只是试图使其与所有代码兼容,因此无论用户使用哪种模块方法,代码库都能正常工作。

外部是Immediately Invoked Function Expression。这是一个匿名函数,将被创建然后立即调用。在此代码中,其主要目的是隔离表达式内的所有变量,从而使它们不可能意外成为全局变量。

在IIFE内部,它进行了一些检查来确定正在使用哪种模块系统,以便可以产生要导入的正确输出。