尚未为上下文加载模块
Posted
技术标签:
【中文标题】尚未为上下文加载模块【英文标题】:Module has not been loaded yet for context 【发布时间】:2019-06-25 21:33:33 【问题描述】:我正在尝试在我的 javascript 代码中使用 fs on。我以前在工作中使用过它并且对它很熟悉,但是,当我尝试在家里使用它时,我必须手动(因为我的项目很小,我没有使用 grunt 或其他辅助工具)设置 requirejs。我已经尝试了很多我可以在网上找到的例子,但我似乎无法让 fs 工作。在其当前的实现中,我的代码直接从我的 JS 文件中运行。我不断得到:
模块名称“fs”尚未加载上下文 我检查了require docs,他们说要实现这些功能: https://requirejs.org/docs/errors.html#notloaded
我已经尝试了文档中的每个配置以及我在网上找到的多个示例。我的文件目录现在都被顶起来了,但我又回到了一个错误。
在我的 js 文件中
require(['file-system'], function (fs)
//fs is now loaded.
console.log('fs', fs);
);
在我的 html 中,它在尝试的迭代中发生了变化,但基于此:
<!DOCTYPE html>
<html lang="en">
<head>
<script data-main="jsFile.js" src="scripts/require.js"></script>
</head>
<body>
<p id="cards"></p>
<p id='POS'></p>
<script src="jsFile.js"></script>
</body>
</html>
结果执行我的代码,错误为:
未捕获的错误:名称“fs”:_。使用 >require([]) https://requirejs.org/docs/errors.html#notloaded 在 makeError (require.js:5) 在 Object.s [按要求] (require.js:5) 在 requirejs (require.js:5) 在 file-system.js:5
【问题讨论】:
【参考方案1】:file-system
库仅在 Node 环境、服务器端或命令行中运行。因此,它不会像您在此处尝试的方式那样直接从客户端脚本访问。
还有其他 NPM 包在浏览器的前端模拟 fs
API。但是您仍然需要以使包的源代码在运行时可用的方式进行设置。这可能涉及将脚本从 node_modules
复制到服务器端代码中的公共目录或使用构建管道工具,例如 Gulp。
但是,一般来说,在浏览器中运行的客户端 JS 根本不应该依赖于访问外部文件系统(文件输入或其他提供此类访问的用户活动除外)。
【讨论】:
以上是关于尚未为上下文加载模块的主要内容,如果未能解决你的问题,请参考以下文章
未捕获的错误:尚未为上下文_加载模块名称“ @ cloudant / cloudant”。在javascript中使用require([])
Karma/Jasmine 测试失败并出现错误:'未捕获的错误:尚未为上下文加载模块名称“simple_test.js”:_。使用要求([])'