Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs React-导入依赖于已在package.json上的其他依赖项时出错_Reactjs_Npm_Dependencies_Circular Dependency_Stealjs - Fatal编程技术网

Reactjs React-导入依赖于已在package.json上的其他依赖项时出错

Reactjs React-导入依赖于已在package.json上的其他依赖项时出错,reactjs,npm,dependencies,circular-dependency,stealjs,Reactjs,Npm,Dependencies,Circular Dependency,Stealjs,在我的package.json上,我有以下依赖项: "dependencies": { "@my-company-repository/componentXPTO": "19.8.5", "@my-company-repository/commonComponents": "18.0.2", "react": "16.12.0", "react-dom": "16.12.0", "react-view-model": "^1.0.1", "rea

在我的
package.json上,我有以下依赖项:

"dependencies": {
    "@my-company-repository/componentXPTO": "19.8.5",
    "@my-company-repository/commonComponents": "18.0.2", 
    "react": "16.12.0",
    "react-dom": "16.12.0",
    "react-view-model": "^1.0.1",
    "react-virtualized": "9.21.0",
    "react-virtualized-tree": "3.1.0",
    "steal": "^2.1.11",
"bundleDependencies": false,
"deprecated": false,
"peerDependencies": {
    "react": "^16.9.0",
    "react-dom": "^16.9.0"
},
"dependencies": {
    "@my-company-repository/commonComponents": "^17.44.6",
    "react-redux": "^5.1.1",
    "react-router-dom": "^4.3.1",
    "react-scripts": "^3.1.1",
    "redux": "^4.0.4",
"bundleDependencies": false,
"deprecated": false,
"peerDependencies": {
    "react": "^16.9.0",
    "react-dom": "^16.9.0"
},
"dependencies": {
    "react-redux": "^5.1.1",
    "react-router-dom": "^4.3.1",
    "react-scripts": "^3.1.1",
    "redux": "^4.0.4",
node\u模块上安装
npm
后,
@my company repository/componentXPTO
显示具有以下依赖项:

"dependencies": {
    "@my-company-repository/componentXPTO": "19.8.5",
    "@my-company-repository/commonComponents": "18.0.2", 
    "react": "16.12.0",
    "react-dom": "16.12.0",
    "react-view-model": "^1.0.1",
    "react-virtualized": "9.21.0",
    "react-virtualized-tree": "3.1.0",
    "steal": "^2.1.11",
"bundleDependencies": false,
"deprecated": false,
"peerDependencies": {
    "react": "^16.9.0",
    "react-dom": "^16.9.0"
},
"dependencies": {
    "@my-company-repository/commonComponents": "^17.44.6",
    "react-redux": "^5.1.1",
    "react-router-dom": "^4.3.1",
    "react-scripts": "^3.1.1",
    "redux": "^4.0.4",
"bundleDependencies": false,
"deprecated": false,
"peerDependencies": {
    "react": "^16.9.0",
    "react-dom": "^16.9.0"
},
"dependencies": {
    "react-redux": "^5.1.1",
    "react-router-dom": "^4.3.1",
    "react-scripts": "^3.1.1",
    "redux": "^4.0.4",
@my company repository/commonComponents
具有以下功能:

"peerDependencies": {
    "react": "16.12.0",
    "react-dom": "16.12.0"
},
注意:我需要
@my company repository/componentXPTO
@my company repository/commonComponents

然后我创建了这个组件,我想在其中使用
@my company repository/componentXPTO

import React, { Component } from "react";
import FancyComponent from '@my-company-repository/componentXPTO';

class MyComponentWithFancyC extends Component {
  render() {
    return (
      <div className="my-container">
        <span>some text</span>
      </div>
    );
  }
}

export default MyComponentWithFancyC;
有人知道问题出在哪里吗

我已经删除了
node\u模块
,并重新安装了它,错误依然存在。我已经创建了一个新的blank react项目,其中我只使用了
@my company repository/componentXPTO
(没有
@my company repository/componentXPTO
上的
json
)依赖项,并且工作正常

我不知道如何解决这个问题……

我终于想出了办法

起初,似乎
@my company repository/componentXPTO/node\u modules/@my company repository/commonComponents
导致在
@my company repository/componentXPTO/node\u modules/
文件夹中查找
react
时出现问题。但是,
react
不存在,因为它是一个
peerDependency

所以我需要通过StealJS重新映射。为此,在我的
package.json
中,我添加了一个StealJS配置:

"steal": {
    "paths": {
      "@my-company-repository/componentXPTO/node_modules/react/*": "node_modules/react/*.js",
      "@my-company-repository/componentXPTO/node_modules/react-dom/*": "node_modules/react-dom/*.js"
    }
在那之后,一些其他的问题出现了,但是因为有一个依赖也作为另一个依赖的依赖。所以我从另一个依赖项中删除了这个依赖项。为此,我在根文件夹上创建了一个
postInstall.js
文件,其中包含以下代码:

const pj = __dirname + "/node_modules/@my-company-repository/componentXPTO/package.json";
const contents = fs.readFileSync(pj);
const pkg = JSON.parse(contents);
delete pkg.dependencies["@my-company-repository/commonComponents"];
fs.writeFileSync(pj, JSON.stringify(pkg));
然后我在我的
包.json中添加了一个脚本,以便在
npm安装之后运行这个新代码:

"scripts": {
    "install": "node postInstall"
现在
@my company repository/componentXPTO
显示了以下依赖项:

"dependencies": {
    "@my-company-repository/componentXPTO": "19.8.5",
    "@my-company-repository/commonComponents": "18.0.2", 
    "react": "16.12.0",
    "react-dom": "16.12.0",
    "react-view-model": "^1.0.1",
    "react-virtualized": "9.21.0",
    "react-virtualized-tree": "3.1.0",
    "steal": "^2.1.11",
"bundleDependencies": false,
"deprecated": false,
"peerDependencies": {
    "react": "^16.9.0",
    "react-dom": "^16.9.0"
},
"dependencies": {
    "@my-company-repository/commonComponents": "^17.44.6",
    "react-redux": "^5.1.1",
    "react-router-dom": "^4.3.1",
    "react-scripts": "^3.1.1",
    "redux": "^4.0.4",
"bundleDependencies": false,
"deprecated": false,
"peerDependencies": {
    "react": "^16.9.0",
    "react-dom": "^16.9.0"
},
"dependencies": {
    "react-redux": "^5.1.1",
    "react-router-dom": "^4.3.1",
    "react-scripts": "^3.1.1",
    "redux": "^4.0.4",

这一个的其他依赖项在我的project
node\u modules
文件夹中查找
react

通常
位置0处的JSON中的意外标记<
错误意味着加载的是HTML文件(通常是404页),而不是package.JSON文件。您可以查看DevTools的“网络”选项卡并查看steal试图从哪个路径加载react吗?@ChasenLeHara感谢您提供的提示,但问题已经解决