昨天有朋友说让vsc支持react和es6太难配置了,我说直接用webpack吧,vsc仅仅用来敲代码就行了。之所以我这么说,因为我的vsc只是用来敲代码的,常用的git操作,依赖安装都是寄几在终端搞的。于是今天试了一下webpack,也踩了几脚坑,先让我擦干眼泪。
这里是这篇文章涉及到的源代码,如果需要运行可以直接跳到下面的最后一步生成。
如何配置
当你看到最终的是如何实现的时候,我其实是拒绝的,我宁可花长时间写的复杂点,但是很简单,绞尽脑汁也多写不了几行字。
创建目录
123cd ~/Desktopmkdir hello-reactcd hello-react初始化npm
12npm init -y// 你也可以不用-y,那你就一步一步自己设置项目信息安装依赖
123456789101112131415161718npm install --save-dev webpack react react-domnpm install --save-dev babel-core babel-preset-react babel-preset-es2015// 或者直接修改`package.json`:{...,"devDependencies": {"babel-core": "^6.23.1","babel-loader": "^6.3.2","babel-preset-es2015": "^6.22.0","babel-preset-react": "^6.23.0","react": "^15.4.2","react-dom": "^15.4.2","webpack": "^2.2.1"},...}安装loader
1npm install --save-dev babel-loader新建.babelrc
123{"presets": ["es2015", "react"]}新建webpack.config.js
12345678910111213141516var webpack = require('webpack');module.exports = {entry: ['./app/main.js'],output: {path: __dirname + '/dist',filename: './bundle.js'},module: {loaders: [{test: /\.jsx?$/,loader: 'babel-loader'}]}}
到此配置就完成了,接下来写点代码
app源码
文件目录
123456789appHelloComponent.jsxindex.htmlmain.jsdistbundle.js(自动生成的).babelrcpackage.jsonwebpack.config.jsHelloComponent.jsx
12345678import React from 'react';import ReactDOM from 'react-dom';export default class HelloComponent extends React.Component {render () {return (<h1>Hello beauty!</h1>);}}index.html
12<div id="app"></div><script src="../dist/bundle.js"></script>main.js
12345import React from 'react';import ReactDOM from 'react-dom';import Hello from './HelloComponent.jsx';ReactDOM.render(<Hello/>, document.getElementById('app'));
生成
上面已经添加了源码,生成就简单了。
|
|
一条指令搞定,然后你就可以直接访问index.html
了。
总结
这个教程算个入门引导,因为没有太难的问题,没实现webpack的各种插件、各种loader、热加载、自动刷新等等,自己去研究吧。奥,对了,create-react-app可以快速生成reactjs项目,但是没提供webpack的集成。
—————————-2017.02.27更新———————————–
今天看webpack2.x发现这里有更全面的关于react配置教程,大家参考一下吧。
参考
webpack:webpack官方文档
Introduction to webpack with ES2015 and React
How-to setup Webpack on an ES6 React Application with SASS?
react: react.js官方教程