尚未为上下文加载模块

时间:2019-02-01 10:11:56

标签: javascript html requirejs fs

我正在尝试在Javascript代码中使用fs on。我以前在工作中使用过它,但对它还不太熟悉,但是,当我尝试在家中使用它时,必须手动设置(因为我的项目很小,所以我没有使用grunt或其他辅助工具)来设置requirejs。我尝试了很多可以在网上找到的示例,但似乎无法使fs正常工作。在当前的实现中,我的代码直接从我的JS文件运行。我不断得到:

  

尚未为上下文加载模块名称“ fs”   我已经检查了需求文档,他们说要实现以下功能:   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 个答案:

答案 0 :(得分:0)

file-system库仅在节点环境中,在服务器端或从命令行运行。因此,您将无法通过客户端脚本直接访问它。

在浏览器中,还有其他NPM软件包可模拟前端的fs API。但是,您仍然需要进行设置,以使程序包的源代码在运行时可用。这可能涉及将脚本从node_modules复制到服务器端代码中的公共目录,或使用构建管道工具(例如Gulp)。

但是,一般来讲,在浏览器中运行的客户端JS根本不应该依赖于访问外部文件系统(文件输入或提供这种访问权限的其他用户活动除外)。