【问题标题】:RequireJS Module name "requirejs" has not been loaded yet for context. use require([])RequireJS 模块名称“requirejs”尚未加载上下文。使用要求([])
【发布时间】:2016-07-13 15:28:02
【问题描述】:

我知道有一个模块未加载的帮助页面,但是,由于 requirejs 找不到 requirejs,这似乎是另一种情况。

我使用 npm 安装了所有依赖项。我的主脚本位于项目根目录中,由 html 页面调用。

这是来自网页的sn-p:

<script type="text/javascript" data-main="./airportLeafletScript.js" src="node_modules/requirejs/require.js"></script>

然后 airportLeafletScript.js 的头部是这样的:

var requirejs = require('requirejs');

requirejs.config({
//Pass the top-level main.js/index.js require
//function to requirejs so that node modules
//are loaded relative to the top-level JS file.
nodeRequire: require
});

requirejs(['turf', 'jquery', 'leaflet', 'leaflet-rotatedmarker', 
    'leaflet-slider', 'shpjs', 'jquery-ui', 'json3', 'esri-leaflet'],
    function   (turf, $, L, Marker, SliderControl, shp) {
 //foo and bar are loaded according to requirejs
 //config, but if not found, then node's require
 //is used to load the module.
});

实际的错误信息是:

11:03:19.078 Error: Module name "requirejs" has not been loaded yet for context: _. Use require([])
http://requirejs.org/docs/errors.html#notloaded
makeError() require.js:168
localRequire() require.js:1433
requirejs() require.js:1794
<anonymous> airportLeafletScript.js:46
1 require.js:168:17

那么我怎样才能让 requirejs 为这个项目工作呢?好像没有配置好

【问题讨论】:

    标签: javascript node.js npm requirejs


    【解决方案1】:

    您显示的 var requirejs = require('requirejs'); 代码旨在在 Node.js 中运行,而不是在浏览器中。另请注意传递给 requirejs.config 的配置,其中包括 nodeRequire,这仅在 Node.js 中有意义。

    当您在浏览器中使用您显示的 script 标记加载该代码时,RequireJS 已经加载,并且 require 调用尝试再次加载它,这无论如何都不好你是怎么剪的。它碰巧触发了 RequireJS 特定的错误,但这是尝试通过 RequireJS 加载为 Node.js 编写的代码的副作用。

    当您在 Node.js 中加载相同的代码时,require 调用由 Node.js 处理。它会加载 RequireJS,然后您就可以对其进行配置和使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-26
      • 2013-12-05
      • 2020-06-03
      • 1970-01-01
      相关资源
      最近更新 更多