1.安装软件
(1) nodejs node下载链接
(2) npm包管理 (安装nodejs的时候已经安装了npm包管理)
2.更换npm库的源
由于国内网络环境问题,配置阿里的npm库源
npm config set registry https://registry.npm.taobao.org
3.构建项目
3.1 选择一个目录,用webstorm构建一个空白的项目
3.2 配置依赖库
打开控制台切到项目所在目录,在控制台里输入npm init
命令来初始化一个package.json文件,这个文件是一个类似于pom.xml的文件,用来描述需要的依赖库。
package.json内容:
- {
- "name": "myfirstreact","version": "1.0.0","description": "\"我的第一个react程序\"","main": "index.js","dependencies": {
- "babel": "^6.5.2","webpack": "^1.14.0","webpack-dev-server": "^1.16.2"
- },"devDependencies": {
- "babel": "^6.5.2","babel-loader": "^6.2.10","babel-preset-es2015": "^6.18.0","babel-preset-react": "^6.16.0","babel-preset-stage-0": "^6.16.0","css-loader": "^0.26.1","eslint": "^3.13.1","eslint-plugin-react": "^6.9.0","file-loader": "^0.9.0","jquery": "^3.1.1","less-loader": "^2.2.3","react": "^15.4.2","react-dom": "^15.4.2","react-hot-loader": "^1.3.1","style-loader": "^0.13.1","url-loader": "^0.5.7","scripts": {
- "start": "node server.js","lint": "eslint src"
- },"author": "","license": "ISC"
- }
3.3 安装需要的文件
npm install webpack webpack-dev-server babel --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
--save-dev 会把下载包的相关信息写到package.json的devDependencies里面方便以后发布,其他人使用的时候只需要npm install
就可以把相关的依赖下载到当前的项目里面。
在package.json里面包的版本之前的^
表示可以安装类似2.x.x版本的组件但是不能安装3.x.x版本的软件
在package.json里面包的版本之前的~
表示可以安装2.1.x的软件不能安装2.3.x的软件
3.4 新建一个webpack.config.js的文件
- 'use strict';
- var webpack = require('webpack');
- var commonsPlugin = new webpack.optimize.CommonsChunkPlugin('common.js');
- var path = require('path');
- module.exports = {
- devtool: 'eval',entry: [
- 'webpack-dev-server/client?http://localhost:3000','webpack/hot/only-dev-server','./src/js/entry.js'
- ],output: {
- path: path.join(__dirname,'dist'),filename: 'bundle.js',publicPath: '/static/'
- },plugins: [
- new webpack.HotModuleReplacementPlugin(),commonsPlugin
- ],module: {
- loaders: [
- {
- test: /\.css$/,loader: 'style-loader!css-loader'
- },{
- test: /\.jsx?$/,loaders: ['react-hot','babel'],exclude: /node_modules/,},{
- test: /\.(png|jpg)$/,loader: 'url-loader?limit=8192'
- },{
- test: /\.less$/,loader: 'style-loader!css-loader!less-loader'
- },{
- test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/,loader: "url-loader?limit=10000&mimetype=application/font-woff"
- },{
- test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,loader: "file-loader"
- }
- ]
- },resolve: {
- root:'',extensions: ['','.js','.json','.less']
- }
- };
3.5新建一个.babelrc
的文件
里面的内容如下:
- {
- "presets": ["es2015","stage-0","react"]
- }
上面的是babel插件的相关信息
3.6 新建一个.eslintrc
的文件
里面的内容如下:
这个配置是设置js的代码相关规范的
- {
- "ecmaFeatures": {
- "jsx": true,"modules": true
- },"env": {
- "browser": true,"node": true
- },"parser": "babel-eslint","rules": {
- "quotes": [2,"single"],"strict": [2,"never"],"react/jsx-uses-react": 2,"react/jsx-uses-vars": 2,"react/react-in-jsx-scope": 2
- },"plugins": [
- "react"
- ]
- }
3.7新建server.js文件
- var webpack = require('webpack');
- var WebpackDevServer = require('webpack-dev-server');
- var config = require('./webpack.config');
- new WebpackDevServer(webpack(config),{
- publicPath: config.output.publicPath,hot: true,inline:true,historyApiFallback: true
- }).listen(3000,'localhost',function (err,result) {
- if (err) {
- return console.log(err);
- }
- console.log('Listening at http://localhost:3000/');
- });
3.8创建index.html文件
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <Meta charset="UTF-8">
- <title>myFirstReact</title>
- </head>
- <body>
- <div id="root"></div>
- <script type="text/javascript" src="/static/common.js" charset="utf-8"></script>
- <script type="text/javascript" src="/static/bundle.js" charset="utf-8"></script>
- </body>
- </html>
3.9 创建src/js
文件夹
3.9.1 创建src/js/helloworld.js
:
- import React,{ Component } from 'react';
- export default class Hello extends Component {
- render() {
- return (
- <div>
- <h1>Hello,world.</h1>
- <p>this is a simple section</p>
- <p>终于搭建成功了</p>
- </div>
- );
- }
- }
3.9.2 创建src/js/entry.js
:
- import React from 'react';
- import ReactDOM from 'react-dom';
- import Hello from './helloworld';
- ReactDOM.render(<Hello />,document.getElementById('root'));
4 在控制台运行npm run start
,
5 在浏览器中输入http://localhost:3000/
查看到如下内容:
参考 http://www.jianshu.com/p/bf6ca7cb7f8a