使用require.js时忽略特定文件

时间:2017-09-06 13:48:22

标签: requirejs

requirejs将JS文件解析为文本并构建所有需求的树......

然后将include包含到HTML文件的头部。

在特定的上下文中,我需要忽略特定文件,例如如果它看到这个,它就不会被添加到HTML文件中:

const { mixinService } = require("devtools/shared/mixinService");

我需要知道如何做到这一点,因为在一个上下文中我需要文件,但在另一个上下文中它会破坏我的所有组件。

让我来描述不同的背景:我在Firefox浏览器上使用Mozilla。脚本可以在特权JS环境中运行,它们可以访问特殊API,也可以在内容中运行(如常规网页)。

mixinService使用其中一些特权API,因此它与内容脚本不兼容,因此上下文具有特权和内容。我们需要在内容流程中运行时忽略require。

1 个答案:

答案 0 :(得分:0)

原来你可以使用define来实现这一点,所以在我的例子中它看起来像这样:

define("devtools/shared/mixinService", {
  mixinService: {
    mixins: []
  }
});

require.config({
  baseUrl: "resource://devtools-client-jsonview/",
  paths: {
    "devtools/client/shared": "resource://devtools-client-shared",
    "devtools/shared": "resource://devtools/shared",
    "devtools/client/shared/vendor/react":
      JSONView.debug
      ? "resource://devtools-client-shared/vendor/react-dev"
      : "resource://devtools-client-shared/vendor/react"
  }
});

// Load the main panel module
requirejs(["json-viewer"]);

当你知道如何时很容易。