为了账号安全,请及时绑定邮箱和手机立即绑定

React 运行npm run eject的问题

React 运行npm run eject的问题

Ni14 2018-02-01 17:55:43
最近刚开始解除react用的是官方推荐的create-react-app脚手架工具如果想要自己修改webpack之类的配置需要执行npm run eject弹出配置文件但这个操作是不可逆的遇到一个问题就是我执行npm run eject之后发现所有依赖的包都加在了dependencies里,类似babel,eslint之类的配置都放在了里面 如下package.json里面的dependencies对应的是生产环境,这里面大部分包其实只是在开发环境下依赖的,应该放在devDependencies下的我尝试在这种状态下build  发现也并没有全都把那些包加进去,但就是很好奇,这样会有什么影响吗?或者我主动把那些包放在devDependencies里面可行吗??求指点{   "name": "todo-list",   "version": "0.1.0",   "private": true,   "dependencies": {     "autoprefixer": "7.1.6",     "babel-core": "6.26.0",     "babel-eslint": "7.2.3",     "babel-jest": "20.0.3",     "babel-loader": "7.1.2",     "babel-preset-react-app": "^3.1.1",     "babel-runtime": "6.26.0",     "case-sensitive-paths-webpack-plugin": "2.1.1",     "chalk": "1.1.3",     "css-loader": "0.28.7",     "dotenv": "4.0.0",     "dotenv-expand": "4.0.1",     "eslint": "4.10.0",     "eslint-config-react-app": "^2.1.0",     "eslint-loader": "1.9.0",     "eslint-plugin-flowtype": "2.39.1",     "eslint-plugin-import": "2.8.0",     "eslint-plugin-jsx-a11y": "5.1.1",     "eslint-plugin-react": "7.4.0",     "extract-text-webpack-plugin": "3.0.2",     "file-loader": "1.1.5",     "fs-extra": "3.0.1",     "html-webpack-plugin": "2.29.0",     "jest": "20.0.4",     "object-assign": "4.1.1",     "postcss-flexbugs-fixes": "3.2.0",     "postcss-loader": "2.0.8",     "promise": "8.0.1",     "prop-types": "^15.6.0",     "raf": "3.4.0",     "react": "^16.2.0",     "react-dev-utils": "^5.0.0",     "react-dom": "^16.2.0",     "react-redux": "^5.0.6",     "redux": "^3.7.2",     "style-loader": "0.19.0",     "sw-precache-webpack-plugin": "0.11.4",     "url-loader": "0.6.2",     "webpack": "3.8.1",     "webpack-dev-server": "2.9.4",     "webpack-manifest-plugin": "1.3.2",     "whatwg-fetch": "2.0.3"   },   "scripts": {     "start": "node scripts/start.js",     "build": "node scripts/build.js",     "test": "node scripts/test.js --env=jsdom"   },   "jest": {     "collectCoverageFrom": [       "src/**/*.{js,jsx,mjs}"     ],     "setupFiles": [       "<rootDir>/config/polyfills.js"     ],     "testMatch": [       "<rootDir>/src/**/__tests__/**/*.{js,jsx,mjs}",       "<rootDir>/src/**/?(*.)(spec|test).{js,jsx,mjs}"     ],     "testEnvironment": "node",     "testURL": "http://localhost",     "transform": {       "^.+\\.(js|jsx|mjs)$": "<rootDir>/node_modules/babel-jest",       "^.+\\.css$": "<rootDir>/config/jest/cssTransform.js",       "^(?!.*\\.(js|jsx|mjs|css|json)$)": "<rootDir>/config/jest/fileTransform.js"     },     "transformIgnorePatterns": [       "[/\\\\]node_modules[/\\\\].+\\.(js|jsx|mjs)$"     ],     "moduleNameMapper": {       "^react-native$": "react-native-web"     },     "moduleFileExtensions": [       "web.js",       "mjs",       "js",       "json",       "web.jsx",       "jsx",       "node"     ]   },   "babel": {     "presets": [       "react-app"     ]   },   "eslintConfig": {     "extends": "react-app"   } }
查看完整描述

8 回答

已采纳
?
ruibin

TA贡献358条经验 获得超213个赞

首先,你要明白打包的原理。打包是把你项目引用到的模块合成起来,放到一起。很明显,哪些打包过程依赖的工具包,你在项目中并没有引用,所以并不会被打包到最后的文件中。 为什么要分devDependencies 和dependencies 主要是为了方便用户理解这些包的用途。你想要验证下,也可以把项目需要的react包放在devDependencies中,一样可以正常打包到项目里面去。

查看完整回答
3 反对 回复 2018-02-02
点击展开后面1
  • 8 回答
  • 0 关注
  • 19819 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信