国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

react+webpack+webstorm開發(fā)環(huán)境搭建

Snailclimb / 931人閱讀

摘要:先是基礎(chǔ)知識(shí),首先是補(bǔ)了的基礎(chǔ),使用了的入門教程。另外關(guān)于,慕課的視頻教程講的也比較清晰,適合入門統(tǒng)統(tǒng)過(guò)了一遍之后,開始建立腳手架,正式上馬編寫。廢話不多說(shuō)了,下面一步一步開始了。安裝完成之后,記得設(shè)置路徑構(gòu)建項(xiàng)目使用新建一個(gè)空白項(xiàng)目。

前言

春節(jié)期間,更新了一下自己關(guān)于前端的知識(shí)體系,要知道對(duì)于前端技術(shù),我還是停留在JSP,JQUERY的時(shí)代,現(xiàn)在項(xiàng)目里面使用REACT作為前臺(tái),所以帶著看一看的心態(tài),看了前臺(tái)同學(xué)的腳手架,看完嚇了一跳,因?yàn)?..完全看不懂.所以借著這個(gè)機(jī)會(huì)好好的將REACT摸一遍。

先是基礎(chǔ)知識(shí),首先是補(bǔ)了NODEJS的基礎(chǔ),使用了RUNOOB的入門教程。簡(jiǎn)單的介紹了NODE的相關(guān)模塊,主要有系統(tǒng)文件系統(tǒng)操作,WEB模塊,GET&POST參數(shù)解析,以及EXPRESS框架介紹,都介紹的比較淺。

然后是有幸看到阮一峰關(guān)于REACT的博客,主要看了ES6,Babel,Webpack, React 和 React-Route 以及 Redux。
另外關(guān)于WEBPACK,慕課的視頻教程講的也比較清晰,適合入門
統(tǒng)統(tǒng)過(guò)了一遍之后,開始建立REACT腳手架,正式上
馬(編寫Hello World)。選定REACT + WEBPACK + WEBSTORM. 話說(shuō)作為windows老鐵,斷斷續(xù)續(xù)在家里用了兩年的MAC(公司辦公還是用WIN)后,慢慢對(duì)MAC路轉(zhuǎn)粉了,作為程序員,MAC真的很方便。廢話不多說(shuō)了,下面一步一步開始了。

安裝軟件

需要安裝node.js和npm工具,這個(gè)就不多說(shuō)了,現(xiàn)在安裝node附帶npm了。如果你安裝了brew,直接使用brew install node即可。
使用 node -v , npm -v 檢查是否安裝完成。
安裝完成之后,記得設(shè)置NODE_PATH路徑

構(gòu)建項(xiàng)目

使用webstorm新建一個(gè)空白項(xiàng)目。

打開webstorm的控制臺(tái),輸入npm init初始化一個(gè)package.json(和maven一樣,這個(gè)是npm的依賴庫(kù)描述文件)

安裝使用的庫(kù),其中--save-dev會(huì)把下載包的相關(guān)信息自動(dòng)寫到package.json的devDependencies中,其他人只需要運(yùn)行npm install就可以下載相關(guān)的依賴到當(dāng)前項(xiàng)目中。

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
項(xiàng)目文件

均在當(dāng)前項(xiàng)目文件夾下新建一下文件/目錄

新建webpack.config.js文件

"use strict";
var webpack = require("webpack");
var path = require("path");

//change:使用commonsplugin打包失敗,替換成htmlWebpackPlugin
var commonsPlugin = new webpack.optimize.CommonsChunkPlugin("common.js");
var htmlWebpackPlugin = require("html-webpack-plugin");

module.exports = {

    devtool: "eval",
    entry: [
        "./src/js/main.js"
    ],
    output: {
        path: path.join(__dirname, "dist"),
        filename: "bundle.js",
        publicPath: "/static/"
    },
    plugins: [
        new htmlWebpackPlugin({
            template:"index.html",
            filename:"index.html",
            title:"webpack is good"
        })
    ],

    module: {
        loaders: [
            {
                test: /.css$/,
                loader: "style-loader!css-loader"
            },
            {
                test: /.jsx?$/,
                loaders: ["react-hot-loader/webpack", "babel-loader"],
                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:{
        extensions:[".js", ".jsx", ".less", ".css"]
    }
};

新建.babelrc文件

{
  "presets": ["es2015",  "react"]
}

新建.eslintrc文件

{
  "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"
  ]
}

新建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/");
});

修改package.json

"scripts": {
    "dev": "webpack-dev-server --open",
    "start": "node server.js",
    "lint": "eslint src"
  }

創(chuàng)建src/js文件夾

創(chuàng)建src/js/a.js

import React, { Component } from "react";

export default class Hello extends Component {
    render() {
        return (
        

Hello, world.

this is a simple section

終于搭建成功了

); } }

創(chuàng)建src/js/main.js

import React from "react";
import ReactDOM from "react-dom";
import Hello from "./a";

ReactDOM.render(, document.getElementById("root"));

創(chuàng)建index.html




    
    test


<%= htmlWebpackPlugin.options.title %>
運(yùn)行項(xiàng)目

在控制臺(tái)運(yùn)行npm run start,在瀏覽器中輸入http://localhost:3000/dist/index.html,出現(xiàn)一下頁(yè)面,即表示腳手架搭建完成。

Hello, world.
this is a simple section
終于搭建成功了
webpack is good

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/107609.html

相關(guān)文章

  • 關(guān)于Vue2一些值得推薦的文章 -- 五、六月份

    摘要:五六月份推薦集合查看最新的請(qǐng)點(diǎn)擊集前端最近很火的框架資源定時(shí)更新,歡迎一下。蘇幕遮燎沈香宋周邦彥燎沈香,消溽暑。鳥雀呼晴,侵曉窺檐語(yǔ)。葉上初陽(yáng)乾宿雨,水面清圓,一一風(fēng)荷舉。家住吳門,久作長(zhǎng)安旅。五月漁郎相憶否。小楫輕舟,夢(mèng)入芙蓉浦。 五、六月份推薦集合 查看github最新的Vue weekly;請(qǐng)::點(diǎn)擊::集web前端最近很火的vue2框架資源;定時(shí)更新,歡迎 Star 一下。 蘇...

    sutaking 評(píng)論0 收藏0
  • 關(guān)于Vue2一些值得推薦的文章 -- 五、六月份

    摘要:五六月份推薦集合查看最新的請(qǐng)點(diǎn)擊集前端最近很火的框架資源定時(shí)更新,歡迎一下。蘇幕遮燎沈香宋周邦彥燎沈香,消溽暑。鳥雀呼晴,侵曉窺檐語(yǔ)。葉上初陽(yáng)乾宿雨,水面清圓,一一風(fēng)荷舉。家住吳門,久作長(zhǎng)安旅。五月漁郎相憶否。小楫輕舟,夢(mèng)入芙蓉浦。 五、六月份推薦集合 查看github最新的Vue weekly;請(qǐng)::點(diǎn)擊::集web前端最近很火的vue2框架資源;定時(shí)更新,歡迎 Star 一下。 蘇...

    khs1994 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<