React-Redux使用笔记2--完善打包生产代码流程
更新日期:
最近又重新拾起了React框架,并配合开源模板gentelella以及Redux建立了个简单的项目。《React-Redux使用笔记》系列用于记录过程中的一些使用和解决方法。
本文记录完善打包生产代码流程的过程。
分离webpack和webpack-dev配置
在开发过程中,我们需要使用到webpack-dev-server。
而在打包生产代码的过程中,我们仅需要使用webpack进行编译打包就够了。
安装babel-polyfill
Babel默认只转换新的JavaScript句法(syntax),而不转换新的API,比如Iterator、Generator、Set、Maps、Proxy、Reflect、Symbol、Promise等全局对象,以及一些定义在全局对象上的方法(比如Object.assign)都不会转码。
举例来说,ES6在Array对象上新增了Array.from方法。Babel就不会转码这个方法。如果想让这个方法运行,必须使用babel-polyfill,为当前环境提供一个垫片。
使用命令安装:1
npm install babel-polyfill --save-dev
webpack.config.js
1 | // webpack.config.js |
webpackdev.config.js
1 | // webpackdev.config.js |
修改package.json的命令
1 | // package.json |
打包代码
使用shell脚本打包代码
本项目中使用shell脚本打包代码:1
2
3
4
5
6
7
8
9// publish.sh
# clean dist
rm -rf dist
# webpack build
npm run build
# copy static
cp -r app/static dist
使用shelljs打包代码
像windows下面,默认没有运行shell脚本的命令,此时我们可以借助shelljs来完成。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23// publish.js
// https://github.com/shelljs/shelljs
require('shelljs/global');
var webpack = require('webpack');
var webpackConfig = require('./webpack.config.js');
// clean dist
rm('-rf', 'dist');
// webpack build
webpack(webpackConfig, function (err, stats) {
if (err) throw err
process.stdout.write(stats.toString({
colors: true,
modules: false,
children: false,
chunks: false,
chunkModules: false
}) + '\n')
});
// copy static
cp('-R', 'app/static/*', 'dist');
结束语
至此,我们完成了打包代码的过程。其实我们也可以直接使用webpack来完成后续的打包流程,不过本骚年还没仔细去研究,这里就先使用shell脚本打包啦,后面如果有改进再更新哈。
此处查看项目代码
此处查看页面效果
码生艰难,写文不易,给我家猪囤点猫粮了喵~
查看Github有更多内容噢:https://github.com/godbasin
更欢迎来被删的前端游乐场边撸猫边学前端噢
如果你想要关注日常生活中的我,欢迎关注“牧羊的猪”公众号噢