快捷导航

React 运行npm run eject的问题

最近刚开始解除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": [      "/config/polyfills.js"    ],    "testMatch": [      "/src/**/__tests__/**/*.{js,jsx,mjs}",      "/src/**/?(*.)(spec|test).{js,jsx,mjs}"    ],    "testEnvironment": "node",    "testURL": "http://localhost",    "transform": {      "^.+\\.(js|jsx|mjs)$": "/node_modules/babel-jest",      "^.+\\.css$": "/config/jest/cssTransform.js",      "^(?!.*\\.(js|jsx|mjs|css|json)$)": "/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"  }}

免责声明:本内容仅代表回答者见解不代表本站观点,请谨慎对待。

版权声明:作者保留权利,不代表本站立场。

回复

使用道具 举报

参与会员1

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

使用道具 举报

可能感兴趣的问答

发新帖
  • 微信访问
  • 手机APP