1. 程式人生 > >React 搭建PC 開發環境

React 搭建PC 開發環境

第一步:

安裝node.js

第二步

安裝webpack
npm install webpack -g

第三步建立專案 1.建立一個根目錄,目錄名為react-webpack-master,執行命令

cd react-webpack-master/ 切換到該目錄下

2.使用 npm init 初始化,生成 package.json 檔案:執行命令:

npm init 自定義建立package.json
npm init -yes 可以建立預設的package.json

3.現在我們的專案已經建立好了,接下來我們來新增依賴包及外掛 (1)區域性安裝Webpack,執行命令:

npm install webpack --save-dev

(2)安裝React,–save 命令用於將包新增至 package.json 檔案,執行命令:

npm install react react-dom --save-dev

(3)安裝babel外掛,babel外掛是webpack需要的載入器,如果沒有這幾個載入器我們的jsx語法,和es2015語法就會報錯。

npm install babel-loader babel-preset-es2015 babel-preset-react --save-dev

webpack.config.js配置:

var path = require('path');
var webpack = require('webpack');
module.exports = {
    entry: ['webpack/hot/dev-server', path.resolve(__dirname, './app/main.js')],
    output: {
        path: path.resolve(__dirname, './build'),
        filename: 'bundle.js'
    },
    devServer: {
        inline: true,
        port: 8181
    },
    module: {
        loaders: [
            {
                test: /\.js?$/,
                exclude: /(node_modules|bower_components)/,
                loader: 'babel',
                query: {
                    presets: ['es2015', 'react']
                }

            }
        ]
    },
    plugins: [
        new webpack.HotModuleReplacementPlugin()
    ]
};
  • entry: 指定打包的入口檔案 main.js。

  • output:配置打包結果,path定義了輸出的資料夾,filename則定義了打包結果檔案的名稱。

  • devServer:設定伺服器埠號為 8181,埠後你可以自己設定 。

  • module:定義了對模組的處理邏輯,這裡可以用loaders定義了一系列的載入器,以及一些正則。當需要載入的檔案匹配test的正則時,就會呼叫後面的loader對檔案進行處理,這正是webpack強大的原因。

  • webpack-dev-server允許我們可以把本地專案跑在像nginx那樣的web伺服器上,更重要的是我們可以在package.json檔案內定義scripts,同時修改webpack的配置檔案來達到自動重新整理的效果。

安裝webpack-dev-server執行命令:

npm install webpack-dev-server --save-dev

在package.json檔案中為scripts新增,方便使用命令:

"scripts": {
  "build": "webpack",
  "dev": "webpack-dev-server --devtool eval --progress --colors --content-base build"
}

這裡的命令是webpack,如果需要壓縮編譯的話,將webpack改成webpack -p

最終package.json檔案如下

{
  "name": "react",
  "version": "1.0.0",
  "description": "react-webpack-stu",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "webpack",
    "dev": "webpack-dev-server --devtool eval --progress --colors --content-base build"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "babel-loader": "^6.2.4",
    "babel-preset-es2015": "^6.13.2",
    "babel-preset-react": "^6.11.1",
    "react": "^15.3.0",
    "react-dom": "^15.3.0",
    "webpack": "^1.13.1",
    "webpack-dev-server": "^1.14.1"
  }
}

這裡有一點提醒大家,package.json中name不能跟我們的模組和專案檔案目錄同名 專案程式碼編寫:

1.index.html程式碼

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>React Test</title>
</head>
<body>
<script src="http://localhost:8181/webpack-dev-server.js"></script>
<div id="content"></div>
<script src="./bundle.js"></script>
</body>
</html>

2.main.js程式碼

let React = require('react');
let ReactDOM = require('react-dom');
let AppComponent = require('./components/Tab1');
ReactDOM.render(<AppComponent />, document.getElementById('content'));

3.Tab1.js程式碼

var React = require('react');
var Tab1= React.createClass({
    render: function () {
        return (
            <div>
                React+Webpack+ES6從環境搭建到HelloWorld
            </div>
        );
    }
});

module.exports = Tab1;

程式碼編譯結束:

1.根目錄下執行命令

npm run dev

2.瀏覽器直接訪問:

http://localhost:8181/index.html