有些教程使用--save模式,而有些使用--save-dev模式。
他们都使用Babel,说它用于将React转换为浏览器理解的普通Javascript。这意味着最终的捆绑包将具有Javascript。在那种情况下,为什么我们需要在-save模式下安装react和react-dom? --save-dev模式应该就够了吗?
另外,像'react'这样的导入React这样的语句是否会进入prod构建包文件?如果没有,React.createClass之类的语句如何在没有React可用于相应的范围/内存空间的情况下工作?
答案 0 :(得分:3)
--save
模式适用于您的应用在其运行时将使用的软件包,例如React。 --save-dev
用于帮助您开发类似linters,模块捆绑器,转换器(例如Babel)的软件包。
这种分离几乎完全是为了您的利益 - 将所有内容放入您的主要依赖项中--save
不会破坏任何内容,但它被视为不良组织。
顺便说一下,NPM 5及以上版本会自动保存包裹,因此--save
标志不再需要了。 (您仍然需要使用--save-dev
将包标记为"开发依赖项")。
另外,来自'的反应导入React等语句是否会进入prod构建包文件?如果没有,React.createClass之类的语句如何在没有React可用于相应的范围/内存空间的情况下工作?
是的,import React from 'react'
最终在捆绑包中,但使用常规JavaScript函数而不是import语句。您可以在文本编辑器中打开捆绑文件,以查看您的代码已转换为什么。