react+webpack+webstorm开发环境搭建
前言春节期间,更新了一下自己关于前端的知识体系,要知道对于前端技术,我还是停留在JSP,JQUERY的时代,现在项目里面使用REACT作为前台,所以带着看一看的心态,看了前台同学的脚手架,看完吓了一跳,因为...完全看不懂.所以借着这个机会好好的将REACT摸一遍。 先是基础知识,首先是补了NODEJS的基础,使用了RUNOOB的入门教程。简单的介绍了NODE的相关模块,主要有系统文件系统操作,WEB模块,GET&POST参数解析,以及EXPRESS框架介绍,都介绍的比较浅。 然后是有幸看到阮一峰关于REACT的博客,主要看了ES6,Babel,Webpack,React 和 React-Route 以及 Redux。 安装软件需要安装node.js和npm工具,这个就不多说了,现在安装node附带npm了。如果你安装了brew,直接使用brew install node即可。 构建项目
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 项目文件均在当前项目文件夹下新建一下文件/目录
'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'] } };
{ "presets": ["es2015","react"] }
{ "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" ] }
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/'); });
"scripts": { "dev": "webpack-dev-server --open","start": "node server.js","lint": "eslint src" }
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> ); } }
import React from 'react'; import ReactDOM from 'react-dom'; import Hello from './a'; ReactDOM.render(<Hello />,document.getElementById('root'));
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>test</title> </head> <body> <div id="root"></div> <%= htmlWebpackPlugin.options.title %> </body> </html> 运行项目在控制台运行npm run start,在浏览器中输入http://localhost:3000/dist/index.html,出现一下页面,即表示脚手架搭建完成。 Hello,world. this is a simple section 终于搭建成功了 webpack is good (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |