找不到模块“fs”。使用simple-json-loader

时间:2017-05-31 18:57:39

标签: typescript webpack node-modules fs angular2-components

我尝试使用simple-json-loader。我从npm安装它并编写以下函数:

onclickExport() {
    var loader = require('simple-json-loader');
    var json = loader.JSONLoader.loadFromFile('wwwroot/dist/data/files.json');
}

very每件事看起来都很简单,但是当我在webback中运行build时,我看到以下错误:

  错误在./~/simple-json-loader/index.js中       找不到模块:错误:无法在D:\ GitRepo \ Magazine \ Magazine.Web \ node_modules \ simple-json-loader中解析模块'fs'        @ ./~/simple-json-loader/index.js

Npm包是在node_modules中的有效路径。我在那看到它。 此外,在调试此功能时,我看到类似的错误。 有什么想法为什么它不起作用?

2 个答案:

答案 0 :(得分:0)

您需要在webpack config中指定target

target: 'node'

这只能作为node.js程序在服务器端工作。

答案 1 :(得分:0)

听起来问题是模块simple-json-loader依赖于内置的Node模块fsfs是一个执行各种文件加载和文件系统任务的模块。

由于看起来你在Angular2(一个前端(客户端)Javascript框架)中构建,这可能是一个环境问题。

客户端浏览器环境无法解释和运行构建为在服务器端节点环境中运行的fs等节点模块。 (more here)

解决方案是在Node环境中运行simple-json-loader模块服务器端,或者找到一个提供相同功能但为浏览器编写的软件包。

在这个问题中讨论过...... Module not found: Error: Cannot resolve module 'fs'

这个问题...... Use fs module in React.js,node.js, webpack, babel,express