1

最近我开始研究一个由另一个程序员基于 react-create-app 编写的商业项目。由于项目已经够大了,并且不停地开发,使用 react-create-app 越来越不方便了,因为我希望自己能够完全配置好 webpack、node.js 等包。

我正在寻找机会尽快将项目从 react-create-app 迁移到表单,就好像项目最初是在没有它的情况下编写的一样。

在我看来,之后使用代码npm run eject似乎非常复杂。

我正在尝试至少找到一些有关此问题的说明或指南,但尚未找到。

这是 package.json 依赖项:

{
    "dependencies": {
    "classnames": "^2.2.5",
    "google-maps-react": "^2.0.2",
    "history": "^4.7.2",
    "husky": "^0.14.3",
    "lint-staged": "^7.2.0",
    "lodash.debounce": "^4.0.8",
    "lodash.isequal": "^4.5.0",
    "lodash.throttle": "^4.1.1",
    "moment-timezone": "^0.5.17",
    "prettier": "^1.12.1",
    "prop-types": "^15.6.1",
    "react": "^16.3.2",
    "react-collapse": "^4.0.3",
    "react-copy-to-clipboard": "^5.0.1",
    "react-dom": "^16.3.2",
    "react-facebook-login": "^3.7.2",
    "react-google-login": "^2.11.3",
    "react-input-mask": "^1.2.2",
    "react-motion": "^0.5.2",
    "react-redux": "^5.0.7",
    "react-router": "^4.2.0",
    "react-router-dom": "^4.2.2",
    "react-router-redux": "^5.0.0-alpha.9",
    "react-scripts": "1.1.4",
    "react-scrollchor": "^4.2.1",
    "react-slick": "^0.14.11",
    "react-stripe-elements": "^1.6.0",
    "redux": "^4.0.0",
    "redux-logger": "^3.0.6",
    "redux-thunk": "^2.2.0",
    "validator": "^8.2.0"
  },

  "devDependencies": {
    "eslint": "^5.3.0",
    "eslint-config-airbnb": "^17.0.0",
    "eslint-config-prettier": "^2.9.0",
    "eslint-plugin-import": "^2.13.0",
    "eslint-plugin-jsx-a11y": "^6.1.1",
    "eslint-plugin-prettier": "^2.6.2",
    "eslint-plugin-react": "^7.10.0",
    "react-scrolllock": "^3.0.1",
    "redux-devtools-extension": "^2.13.5",
    "reselect": "^3.0.1",
    "stylelint": "^9.4.0",
    "stylelint-config-standard": "^18.2.0"
  }
}
4

1 回答 1

0

我会说这取决于你想做什么。我有同样的问题。我弹出了我的本地副本,发现我遇到了很多问题。我的解决方案是在现有的 CRA 项目广告中执行以下操作:

  1. 更新到最新的 react 和 react-dom ,运​​行 'yarn react@next react-dom@next'
  2. 你现在应该拥有最新的 react 版本——所以你可以使用 React.lazy/React.Suspense 进行代码拆分,使用钩子等等。
  3. 如果您在使用导入语法时遇到错误问题,您需要使用 babel-plugin-syntax-dynamic-import 插件。将“babel”字段放入您的包 json 中。

我希望这是一些帮助。还有像https://github.com/timarney/react-app-rewired这样的库,但我没有使用它们。

于 2019-04-30T08:46:39.717 回答