在学习React的过程中,研究其他人写的react项目,是个很好的方式。由于react项目,有许多的依赖包,而且一般在上传源码的过程中都不会上传node_modules下的依赖包,因此在运行其他人的react项目时,需要自己在本地安装依赖环境。
本次学习的项目是W3CSchool的一个练习项目,从网上下载到本地,放在自己的工作空间中,该项目下载链接参考如下:
下面讲解下在安装过程中,遇到的各种问题
一、下载好的项目目录如下,可以看到里面包含了一些配置文件和开发文件,但缺少项目依赖环境。
二、使用webstorm打开项目目录。查看原始package.json文件。在webstorm的terminal上,运行npm i命令,这个步骤将会新建该项目的node_modules文件夹,并将配置文件下的相关依赖下载到了本地。
三、查看项目的package.json文件,找到对应的npm运行命令,可以看到使用了webpack的微型服务器webpack-dev-server,因此需要在项目环境中安装webpack和webpack-dev-server
npm install webpack npm install webpack-dev-server npm install webpack-cli
四、安装完成以后,可以直接执行npm start,查看编译过程中,出现的错误。
1、configuration.output.path: The provided value "./" is not an absolute path!
出现这个错误,一般是webpack.config.json下的output路径出错,根据对应关系仔细查看自己的目录。
2、The node API for babel has been moved to babel-core
出现这个错误,说明你已经安装过了babel文件,并且将“babel”作为了loader的简写,并在配置文件中,进行了相关配置。
module: { rules: [ { test: /\.jsx?$/, exclude: /node_modules/, loader: 'babel', query: { presets: ['es2015', 'react'] } }] }
这里babel包,已经在webpack1.x中已经移除了,你需要将配置文件中的babel写为“babel-loader”来替代它。这里一定要在该项目中,先安装babel-loader。
npm install babel-loader
然后更改配置文件中的loader。
module: { rules: [ { test: /\.jsx?$/, exclude: /node_modules/, loader: 'babel-loader', query: { presets: ['es2015', 'react'] } }] }最后使用npm start,就可以运行起来了。