2017-10-10 59 views
1

我想将项目升级到React 16,因为我有一些依赖项已经依赖它。然而,我还拖尾了一些非常旧的React软件包,我还没有找到时间来升级到支持React 16的新版本。现在我需要花点时间。将项目升级为具有旧依赖项的React 16

我的项目资源已经跟上了React的更新版本,但是我不知道是否有任何不可能解决的旧依赖会导致它们完全被React 16破坏?

+0

只要这些软件包与React无关,那么在使用旧版本时就没有问题。如果您使用的是使用旧版React的模块中的自定义组件,那么您可能会遇到问题。某些事情可能已经过时,甚至过时。确保你的软件包已经跟上最新版本的React,否则你可能想要考虑如何继续(找到一个更新的库或者尝试自己更新旧的库,如果它是开源的)。 – nbkhope

+0

你可以发布你的'package.json'文件,并指出你关心的是哪个deps?你有没有尝试升级和运行你的测试套件?怎么了? –

+0

我使用的所有依赖项都有更新的版本,并且已经准备好了React 16一段时间。问题是我自己没有时间及时处理突发的变化。感谢您指出,我已更新我的问题,使其更清晰。 –

回答

0

在此之后suggested comment,修补通过导入古代的依赖应该工作之前导入类似下面的模块阵营早就:

import React from 'react' 

import PropTypes from 'prop-types' 
import createClass from 'create-react-class' 

Object.assign(React, { 
    PropTypes, 
    createClass 
}) 

对于正在接受之前的警告项目反应16,然后这些得到解决。

1

因此,首先,将旧依赖项目升级到React 16将会在现在或将来不久的某个地方破解,除非您不升级项目中的其他依赖项。但是,我可以建议你一段时间可以绕过的方式。

{ 
    "name": "project-name", 
    "version": "0.1.0", 
    "private": true, 
    "dependencies": { 
    "react": "^16.0.0", 
    "react-dom": "^16.0.0", 
    "react-scripts": "1.0.14" 
    }, 
    "scripts": { 
    "start": "react-scripts start", 
    "build": "react-scripts build", 
    "test": "react-scripts test --env=jsdom", 
    "eject": "react-scripts eject" 
    } 
} 

更新您的这个给定的依赖性反应,去除node_modules文件夹,并再次触发您的package.json NPM安装反应过来运行安装新的软件包和测试,并建立的依赖。