react+webpack+webstorm开发环境搭建

前端之家收集整理的这篇文章主要介绍了react+webpack+webstorm开发环境搭建前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

前言

春节期间,更新了一下自己关于前端的知识体系,要知道对于前端技术,我还是停留在JSP,JQUERY的时代,现在项目里面使用REACT作为前台,所以带着看一看的心态,看了前台同学的脚手架,看完吓了一跳,因为...完全看不懂.所以借着这个机会好好的将REACT摸一遍。

先是基础知识,首先是补了NODEJS的基础,使用了RUNOOB的入门教程。简单的介绍了NODE的相关模块,主要有系统文件系统操作,WEB模块,GET&POST参数解析,以及EXPRESS框架介绍,都介绍的比较浅。

然后是有幸看到阮一峰关于REACT的博客,主要看了ES6,Babel,Webpack,React 和 React-Route 以及 Redux。
另外关于WEBPACK,慕课的视频教程讲的也比较清晰,适合入门
统统过了一遍之后,开始建立REACT脚手架,正式上
马(编写Hello World)。选定REACT + WEBPACK + WEBSTORM. 话说作为windows老铁,断断续续在家里用了两年的MAC(公司办公还是用WIN)后,慢慢对MAC路转粉了,作为程序员,MAC真的很方便。废话不多说了,下面一步一步开始了。

安装软件

需要安装node.js和npm工具,这个就不多说了,现在安装node附带npm了。如果你安装了brew,直接使用brew install node即可。
使用 node -v,npm -v 检查是否安装完成。
安装完成之后,记得设置NODE_PATH路径

构建项目

  • 使用webstorm新建一个空白项目。
  • 打开webstorm的控制台,输入npm init初始化一个package.json(和maven一样,这个是npm的依赖库描述文件
  • 安装使用的库,其中--save-dev会把下载包的相关信息自动写到package.json的devDependencies中,其他人只需要运行npm install就可以下载相关的依赖到当前项目中。
  1. npm install webpack webpack-dev-server babel --save-dev
  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

项目文件

均在当前项目文件夹下新建一下文件/目录

  • 新建webpack.config.js文件
  1. 'use strict';
  2. var webpack = require('webpack');
  3. var path = require('path');
  4.  
  5. //change:使用commonsplugin打包失败,替换成htmlWebpackPlugin
  6. var commonsPlugin = new webpack.optimize.CommonsChunkPlugin('common.js');
  7. var htmlWebpackPlugin = require('html-webpack-plugin');
  8.  
  9. module.exports = {
  10.  
  11. devtool: 'eval',entry: [
  12. './src/js/main.js'
  13. ],output: {
  14. path: path.join(__dirname,'dist'),filename: 'bundle.js',publicPath: '/static/'
  15. },plugins: [
  16. new htmlWebpackPlugin({
  17. template:'index.html',filename:'index.html',title:'webpack is good'
  18. })
  19. ],module: {
  20. loaders: [
  21. {
  22. test: /\.css$/,loader: 'style-loader!css-loader'
  23. },{
  24. test: /\.jsx?$/,loaders: ['react-hot-loader/webpack','babel-loader'],exclude: /node_modules/,},{
  25. test: /\.(png|jpg)$/,loader: 'url-loader?limit=8192'
  26. },{
  27. test: /\.less$/,loader: 'style-loader!css-loader!less-loader'
  28. },{
  29. test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/,loader: "url-loader?limit=10000&mimetype=application/font-woff"
  30. },{
  31. test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,loader: "file-loader"
  32. }
  33. ]
  34. },resolve:{
  35. extensions:['.js','.jsx','.less','.css']
  36. }
  37. };
  1. {
  2. "presets": ["es2015","react"]
  3. }
  1. {
  2. "ecmaFeatures": {
  3. "jsx": true,"modules": true
  4. },"env": {
  5. "browser": true,"node": true
  6. },"parser": "babel-eslint","rules": {
  7. "quotes": [2,"single"],"strict": [2,"never"],"react/jsx-uses-react": 2,"react/jsx-uses-vars": 2,"react/react-in-jsx-scope": 2
  8. },"plugins": [
  9. "react"
  10. ]
  11. }
  1. var 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,hot: true,inline:true,historyApiFallback: true
  7. }).listen(3000,'localhost',function (err,result) {
  8. if (err) {
  9. return console.log(err);
  10. }
  11.  
  12. console.log('Listening at http://localhost:3000/');
  13. });
  1. "scripts": {
  2. "dev": "webpack-dev-server --open","start": "node server.js","lint": "eslint src"
  3. }
  • 创建src/js文件
  • 创建src/js/a.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. }
  • 创建src/js/main.js
  1. import React from 'react';
  2. import ReactDOM from 'react-dom';
  3. import Hello from './a';
  4.  
  5. ReactDOM.render(<Hello />,document.getElementById('root'));
  • 创建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. <%= htmlWebpackPlugin.options.title %>
  10. </body>
  11. </html>

运行项目

在控制台运行npm run start,在浏览器中输入http://localhost:3000/dist/index.html,出现一下页面,即表示脚手架搭建完成。

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

猜你在找的React相关文章