我正在尝试用typescript将一个模块_module_name_
导入到我当前的react-project中,例如react-app
,以供参考。该项目与webpack捆绑在一起。我正在将其导入到我的 .tsx 组件之一。我正在导入的模块是我自己编写的,我在npm上发布了它。在构建react项目时,我收到了cannot resolve
错误。很明显,它无法解析fs
模块。我想知道是什么导致了这个问题?下面是错误输出:
ERROR in ./node_modules/_module_name_/index.js 2:11-24
Module not found: Error: Can't resolve 'fs' in
'/path/to/project/node_modules/_module_name_'
resolve 'fs' in '/path/to/project/node_modules/_module_name_'
Parsed request is a module
using description file: /path/to/project/node_modules/_module_name_/package.json (relative path: .)
Field 'browser' doesn't contain a valid alias configuration
resolve as module
_module_name_
非常简单,实际上它看起来像这样:
// index.js
const path = require('path')
const fs = require('fs');
function foo() {
const abi = JSON.parse(fs.readFileSync('file.json', 'utf8'));
return abi
}
module.exports = {
foo
};
然后我有一个typescript声明文件:
// index.d.ts
export function foo(): any;
当然我有文件本身:
// file.json
{
"a": 1
}
并且我在_module_name_
中有一个package.json
,它至少包含以下条目:
// package.json
{
"main": "index.js",
"types": "./index.d.ts",
"dependencies": {
"fs": "^0.0.1-security",
...
}
...
}
**备注:**当我在我的react项目react-app
中时,我在任何旧的javascript文件或typescript文件中导入foo
都没有问题。除非它是react应用程序的一部分,否则它将完美地工作。这是多么奇怪啊。也许这与我的webpack加载程序有关,因为我正在使用webpack来捆绑应用程序。
**问题:**问题出在_module_name_
一侧还是react-app
一侧?
1条答案
按热度按时间cx6n0qe31#
我只是快速浏览了一下,但基本上你是在尝试在浏览器中使用nodeJS.这不是一个好主意.看看这里:Can't resolve 'fs' using webpack and react需要文件,然后解析应正常工作