javascript - RequireJS 模块名称 "requirejs"尚未加载到上下文中。使用 require([])

标签 javascript node.js npm requirejs

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

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

以下是网页的片段:

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

然后 airportLeafletScript.js 的 header 如下所示:

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 为这个项目工作呢?好像配置不正确

最佳答案

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

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

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

关于javascript - RequireJS 模块名称 "requirejs"尚未加载到上下文中。使用 require([]),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38355903/

相关文章:

javascript - 外部 react 组件看不到 React.Component

node.js - 修改html文件时Nodemon不会重新启动

node.js - npm 安装在多域 git 存储库上失败

node.js - 如何将 `bin/` 下的 `node_modules/` 目录检查到 TFS 中?

javascript - 将 javascript 警报显示为 toast

javascript - jQuery Filter - 如何设置除 "All"之外的不同事件按钮?

javascript - Electron 和 Babel 6 异步/等待抛出意外 token

node.js - 单个服务器上的多个 Nodejs 实例

javascript - JSON stringify 不包括添加到对象的字段

javascript - CRUD操作的不同方法有什么好处?