webpack入门+react环境配置
webpack 基本安装开始前还是万万不能缺少的安装: npm install webpack -g
安装完接着是建个文件夹新建一个package.json依赖管理文件 npm init //运行后 按提示填写 当然嫌麻烦 就直接下一步 下一步就好 无伤大碍
现在安装我们的webpack npm install webpack --save-dev
//--save-dev 的意思是将这个安装过程记录到我们的package.json依赖管理文件里
完后新建一个文件并命名为webpack.config.js(如同我们的常规的 gulpfile.js、Gruntfile.js),就是一个配置项,告诉 webpack 它需要做什么。 打开webpack.config.js引入webpack var webpack = require('webpack');
webpack 基本入门webpack主要结构分三个:入口文件配置(entry)、入口文件输出配置(output)、加载器配置(module)、其他配置(resolve)
entry: { index : './src/main.js' },
//配置编译成功后文件存放的位置
output: {
path: 'dist/js',//编译后文件所在的文件夹
filename: '[name].js' //根据入口文件名命名编译后的文件名,编译后文件还是叫main.js
},
module: {
//最关键的一块配置,它告知 webpack 每一种文件都需要使用什么加载器来处理
loaders: [
{ test: /.css$/,loader: 'style-loader!css-loader' },{ test: /.js$/,loader: 'jsx-loader?harmony' },{ test: /.scss$/,loader: 'style!css!sass?sourceMap'},{ test: /.(png|jpg)$/,loader: 'url-loader?limit=8192'}
]
},
resolve: {
//自动扩展文件后缀名,意味着我们require模块可以省略不写后缀名 extensions: ['','.js','.json','.scss'] }
ok!好记忆不如烂笔头,现在我们来自己搭建一个react的开发环境吧!先参考我的目录结构
我们先要安装一些项目依赖: npm install --save-dev react react-dom
npm install --save-dev babel-core babel-loader babel-preset-es2015 babel-preset-react
npm install --save-dev style-loader css-loader sass-loader url-loader
npm install --save-dev webpack-dev-server
//自动刷新修改后的结果,在webpack.config.js中配置webpack-dev-server,
//在这里需要修改下entry的路径,给它加一个webpack/hot/dev-server,后文会提到
要是安装失败那就分开一个个装,还不行就用淘宝的cnpm装 ,还不行就看看你的node和npm的环境变量等配置(亲身体会T_T) npm install cnpm -g
行!接下来是文件的内容webpack.config.js文件的配置如下: var path = require('path');
var webpack = require('webpack'); //加载webpack依赖包
module.exports = {
entry: ['webpack/hot/dev-server',path.resolve(__dirname,'./development/main.js')],//入口文件并添加了热加载
output: {
path: path.resolve(__dirname,'./build'),filename: 'bundle.js' //输出文件
},module: {
loaders: [
{
test: /.js?$/,exclude: /(node_modules|bower_components)/,loader: 'babel',query: {
presets: ['es2015','react']
} //将react编译成js文件
},{ test: /.css$/,//打包css文件
{ test: /.scss$/,//编译sass文件
{ test: /.(png|jpg)$/,loader: 'url-loader?limit=8192'}
//对图片进行打包
]
},plugins: [
new webpack.HotModuleReplacementPlugin()
],resolve: {
//自动扩展文件后缀名
extensions: ['','.scss','.ts']
}
};
main.js内容如下: let React = require('react');
let ReactDOM = require('react-dom');
let AppComponent = require('./components/index.js');
ReactDOM.render(<AppComponent />,document.getElementById('content'));
index.js内容如下: var React = require('react');
var ProductBox;
ProductBox = React.createClass({
render: function () {
return (
<div className="productBox">
hello react&es2015&webpack!!!
</div>
);
}
});
module.exports = ProductBox;
index.html内容如下: <!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>React Project</title>
</head>
<body>
<script src="http://localhost:8080/webpack-dev-server.js"></script>
<div id="content"></div>
<script src="./bundle.js"></script>
</body>
</html>
结果: hello react&es2015&webpack!!! 晚上写可能有很多内容漏了没解释详细,欢迎纠正!!!(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |