最近今天一直听同学说webpack,react等js,都是现在比较火的js,所以就做了一个小简单的小demo
首先需要安装node.js,因为需要用的npm
生成package.json (package.json文件描述了一个NPM包的所有相关信息,包括作者、简介、包依赖、构建等信息)
$npm init //按提示生成package.json
package.json
{
"name": "reactdemo",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"devDependencies": {
"babel-core": "^6.7.7",
"babel-loader": "^6.2.4",
"babel-preset-es2015": "^6.6.0",
"babel-preset-react": "^6.5.0",
"css-loader": "^0.23.1",
"file-loader": "^0.8.5",
"jsx-loader": "^0.13.2",
"react": "^15.0.1",
"react-dom": "^15.0.1",
"style-loader": "^0.13.1",
"url-loader": "^0.5.7",
"webpack": "^1.13.0"
}
}
如指定依赖的其它包,这些依赖是指包发布后正常执行时所需要的,如果是开发中依赖的包,可以在devDependencies设置。
npm安装package.json时 直接转到当前项目目录下用命令npm install 或npm install --save-dev安装即可,自动将package.json中的模块安装到node-modules文件夹下
安装webpack
$npm install webpack -g //全局
$npm install webpack-server-dev --save-dev // 进入到项目文件下
安装所需要的包
npm install babel-loader babel-core babel-preset-es2015 babel-preset-react url-loader css-loader style-order --save-dev
main.jsx
require("./css/style.css");//引入css文件
var React = require("react");
var ReactDOM = require("react-dom");
var HelloMessage = React.createClass({
render: function () {
return <div > < figure >
< img src = 'images/bg.jpg' /> < /figure> < img src = 'images/ewm.png'
className = "ewm" /></div >
}
});
ReactDOM.render( < HelloMessage / > ,
document.getElementById('example')
);
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<meta name="viewport" content="width=640,target-densitydpi=device-dpi,user-scalable=no">
</head>
<body>
<div id="example"></div>
</body>
<script src="bundle.js"></script>
</html>
webpack.config.js
module.exports = {
entry: './main.jsx',//入口文件
output: {
filename: 'bundle.js'//输出文件
},
module: {
loaders:[
{ test: /\.css$/, loader: 'style-loader!css-loader' },
{
test: /\.js[x]?$/,
exclude: /node_modules/,
loader: 'babel-loader?presets[]=es2015&presets[]=react',
},
{ test: /\.(png|jpg)$/, loader: 'url-loader?limit=8192'}
]
}
};
执行打包
webpack //直接打包
webpack -dev-server //发布到服务器