首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >还没有为上下文加载RequireJS模块名"requirejs“。使用要求([])

还没有为上下文加载RequireJS模块名"requirejs“。使用要求([])
EN

Stack Overflow用户
提问于 2016-07-13 15:28:02
回答 1查看 2.1K关注 0票数 0

我知道有一个模块没有加载的帮助页面,但是,这似乎是另一种情况,因为需求找不到需求。

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

以下是网页上的片段:

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

然后airportLeafletScript.js的头看起来如下所示:

代码语言:javascript
复制
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.
});

实际的错误消息是:

代码语言:javascript
复制
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

那么,我如何让需求为这个项目工作呢?它的配置似乎不正确

EN

回答 1

Stack Overflow用户

发布于 2016-07-13 16:07:43

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

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

在Node.js中加载相同的代码时,require调用由Node.js处理。它加载RequireJS,然后您可以配置它并使用它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38355903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档