windows环境reactjs入坑记------react开发环境安装

React简介:

React 是一个用于构建用户界面的 JAVASCRIPT 库。

React主要用于构建UI,很多人认为 React 是 MVC 中的 V(视图)。

React 起源于 Facebook 的内部项目,用来架设 Instagram 的网站,并于 2013 年 5 月开源。

React 拥有较高的性能,代码逻辑非常简单,越来越多的人已开始关注和使用它。

balabala。。。具体见:http://www.runoob.com/react/react-tutorial.html

 

各类入门教程实施起来,bug太多,本文记录笔者的reactjs入坑记,借鉴与http://www.jianshu.com/p/bf6ca7cb7f8a

 

 

1.基本环境搭建

reactjs依托于nodejs(方便开发部署),首先需要安装nodejs,nodejs依托于python环境。那么首先安装python环境(3以下的版本)。

python  win7  64位下载链接:http://download.csdn.net/detail/vichou_fa/9730068     

python安装后,可以在cmd命令行中输入path,输出环境变量包含安装的python根目录。运行python  --version正确输出版本号说明环境安装成功了。

然后安装nodejs环境:

Nodejs  win7  64位下载链接:http://download.csdn.net/detail/vichou_fa/9731294

(赚点资源积分,官网下载实在太慢,当然也可以不从这个链接下载)

安装以后将nodejs的根目录放到环境变量path中,由于6.3.0版本之后会自带npm的包管理所以不需要单独的安装npm,因此在安装nodejs的同时,npm也安装好了。

由于国内的网络原因,推荐只用阿里的npm源地址:

打开cmd,输入npm config set registry https://registry.npm.taobao.org

 

 

到这里是远远不够的。为了方便搭建和以后的使用我们先下载一个IDE webstorm。笔者安装的webstorm 11 这个是收费的,网上破解方法有很多,笔者就不介绍了。

 

2.项目搭建

1.打开webstorm,新建一个空白项目比如react1

2.打开控制台,在控制台里输入npm init 命令来初始化一个package.json文件,这个文件是一个类似于pom.xml的文件,用来描述需要的依赖库。

在执行npm init时需要输入信息

 

 
  1. name:(react1) react1

  2. version:1.0.0

  3. description:react1 test

  4. entry point:(index.js)

  5. test command:

  6. git reponsitory:

  7. keywords:

  8. author:

  9. license:


 

 

....然后生成 package.json

Is this ok?  y  

完毕。

3.在控制台输入以下命令

 

 
  1. npm install webpack webpack-dev-server babel --save-dev

  2.  
  3. npm install react react-dom babel-loader less-loader css-loader style-loader url-loader file-loader babel-preset-es2015 babel-preset-react react-hot-loader jquery eslint eslint-plugin-react --save-dev

  4.  
  5. npm install babel-preset-stage-0 --save-dev


--save-dev 会把下载包的相关信息写到package.json的devDependencies里面方便以后发布,其他人使用的时候只需要npm install就可以把相关的依赖下载到当前的项目里面。


在package.json里面包的版本之前的^表示可以安装类似2.x.x版本的组件但是不能安装3.x.x版本的软件
在package.json里面包的版本之前的~表示可以安装2.1.x的软件不能安装2.3.x的软件
安装信息:
1.npm install webpack webpack-dev-server babel --save-dev
可能出现以下信息:
npm WARN optional Skipping failed optional dependency /chokidar/fsevents:
npm WARN notsup Not compatible with your operating system or architecture: fsevents@1.0.17
npm WARN react2@1.0.0 No repository field.
不用管它,这些都是WARN  。fsevents是nodejs MAC下的地址,所以windows没有这种目录结构
2.npm install react react-dom babel-loader less-loader css-loader style-loader url-loader file-loader babel-preset-es2015 babel-preset-react react-hot-loader jquery eslint eslint-plugin-react --save-dev
会出现:UNMET PEER DEPENDENCY babel-core@^6.0.0
和UNMET PEER DEPENDENCY less@^2.3.1


说明还没有安装这些插件  不要急
命令行输入
npm install less@2.3.1  --save-dev
然后在输入
npm install babel-core --save-dev
最后在输入
npm install react react-dom babel-loader less-loader css-loader style-loader url-loader file-loader babel-preset-es2015 babel-preset-react react-hot-loader jquery eslint eslint-plugin-react --save-dev

安装这些插件的解释:

Q1:为何安装babel插件?

A1:babel插件能够将ES6标准的js代码,转化为es5,这样当前环境才能够识别。对于Babel的适用参考博文Babel转码使用。

 

4.新建一个webpack.config.js的文件,在文件里面添加如下信息

 

 

 
  1. 'use strict';

  2. var webpack = require('webpack');

  3. var commonsPlugin = new webpack.optimize.CommonsChunkPlugin('common.js');

  4. var path = require('path');

  5.  
  6. module.exports = {

  7. devtool: 'eval',

  8. entry: [

  9. 'webpack-dev-server/client?http://localhost:3000',

  10. 'webpack/hot/only-dev-server',

  11. './src/js/entry.js'

  12. ],

  13. output: {

  14. path: path.join(__dirname, 'dist'),

  15. filename: 'bundle.js',

  16. publicPath: '/static/'

  17. },

  18. plugins: [

  19. new webpack.HotModuleReplacementPlugin(),

  20. commonsPlugin

  21. ],

  22.  
  23. module: {

  24. loaders: [

  25. {

  26. test: /\.css$/,

  27. loader: 'style-loader!css-loader'

  28. },

  29. {

  30. test: /\.jsx?$/,

  31. loaders: ['react-hot', 'babel'],

  32. exclude: /node_modules/,

  33.  
  34. },

  35. {

  36. test: /\.(png|jpg)$/,

  37. loader: 'url-loader?limit=8192'

  38. },

  39. {

  40. test: /\.less$/,

  41. loader: 'style-loader!css-loader!less-loader'

  42. },

  43. {

  44. test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/,

  45. loader: "url-loader?limit=10000&mimetype=application/font-woff"

  46. },

  47. {

  48. test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,

  49. loader: "file-loader"

  50. }

  51. ]

  52. },

  53. resolve: {

  54. root:'',

  55. extensions: ['', '.js', '.json', '.less']

  56. }

  57. };

 

5.新建一个.babelrc的文件里面的内容如下:此文件用来配置Babel插件

 

 
  1. {

  2. "presets": ["es2015", "stage-0", "react"]

  3. }

上面的是babel插件的相关信息

 

6.新建一个.eslintrc的文件里面的内容如下:

 
  1. {

  2. "ecmaFeatures": {

  3. "jsx": true,

  4. "modules": true

  5. },

  6. "env": {

  7. "browser": true,

  8. "node": true

  9. },

  10. "parser": "babel-eslint",

  11. "rules": {

  12. "quotes": [2, "single"],

  13. "strict": [2, "never"],

  14. "react/jsx-uses-react": 2,

  15. "react/jsx-uses-vars": 2,

  16. "react/react-in-jsx-scope": 2

  17. },

  18. "plugins": [

  19. "react"

  20. ]

  21. }

这个配置是设置js的代码相关规范的
7.新建server.js文件添加以下内容:

 

 

 
  1. vr webpack = require('webpack');

  2. var WebpackDevServer = require('webpack-dev-server');

  3. var config = require('./webpack.config');

  4.  
  5. new WebpackDevServer(webpack(config), {

  6. publicPath: config.output.publicPath,

  7. hot: true,

  8. inline:true,

  9. historyApiFallback: true

  10. }).listen(3000, 'localhost', function (err, result) {

  11. if (err) {

  12. return console.log(err);

  13. }

  14.  
  15. console.log('Listening at http://localhost:3000/');

  16. });


8.修改package.json添加如下内容:

 

 

 
  1. "scripts": {

  2. "start": "node server.js",

  3. "lint": "eslint src"

  4. }


9.创建src/js文件夹
10.创建src/js/helloworld.js:

 

 

 

 
  1. import React, { Component } from 'react';

  2.  
  3. export default class Hello extends Component {

  4. render() {

  5. return (

  6. <div>

  7. <h1>Hello, world.</h1>

  8. <p>this is a simple section</p>

  9. <p>终于搭建成功了</p>

  10. </div>

  11.  
  12. );

  13. }

  14. }


11.创建src/js/entry.js:

 

 

 
  1. import React from 'react';

  2. import ReactDOM from 'react-dom';

  3. import Hello from './helloworld';

  4.  
  5. ReactDOM.render(<Hello />, document.getElementById('root'));


12.在项目目录下面创建index.html

 

 

 
  1. <!DOCTYPE html>

  2. <html lang="en">

  3. <head>

  4. <meta charset="UTF-8">

  5. <title>test</title>

  6. </head>

  7. <body>

  8. <div id="root"></div>

  9. <script type="text/javascript" src="/static/common.js" charset="utf-8"></script>

  10. <script type="text/javascript" src="/static/bundle.js" charset="utf-8"></script>

  11. </body>

  12. </html>



注意webstorm可能一开始无法识别js,做如下操作:file—>settings—>Languages & Frameworks—>javascript设置language version
为JSX Harmony


在控制台运行npm run start,在浏览器中输入http://localhost:3000/查看到如下内容:
 

 


 

 

React技术栈教程:http://www.ruanyifeng.com/blog/2016/09/react-technology-stack.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值