我正在玩create-react-app
,发现它确实将所有包置于正常的"依赖项"下。我构建了该应用程序,发现"构建"文件夹大小为 2.66 MB。
然后我手动将生产中不需要的包移动到"devDependencies"并再次构建,但"build"文件夹大小仍然是 2.66 MB。
webpack.prod.js 文件中是否有一些逻辑,即使所有包都列在"依赖项"下,也知道需要什么?
如果是这样,在package.json中使用"devDependencies"是否还有一些好处?
当 webpack 构建你的项目时,它会确定你的项目所依赖的一切,从入口文件开始,然后组合、丑化等等,而忽略其他一切。
例如,如果index.js
是你的入口文件,并且它依赖于moment.js
,则moment.js
将包含在你的构建中,无论它是依赖项还是devDependency。
这样做的原因是 npm 区分了依赖关系和 devDependencies,而 webpack 只区分需要的和不需要的。
如果是这样,在package.json中使用"devDependencies"是否还有一些好处?
我仍然使用 devDependencies,但只是作为订购我的 package.json 的一种方式,但是当使用 webpack 等工具来构建生产站点/应用程序时,一切都可以安全地存在于依赖项中