- 本次更新目的,去除多余插件,框架,本项目突出react,redux框架的执行,其他不参与
- 去除jest测试框架,不强制测试框架
- 精简npm包,去除无用npm包
- 更新依赖,修复细节问题
- html-webpack-plugin缓存问题修复,可以热修改less(sass,css)文件
- MarkDown组件完成
- webpack添加搜索路径(client/component),可以全局引入这个路径下的组件
- 将redux-router替换成redux-simple-router
- 去除多余的static静态声明
- 升级版本依赖
- 去除多余的doc捆绑操作
- 切换主题为通过cms模板样式
- 修复bundle会在console里面打印2次的问题
- 开发的时候使用style-loader,而发布的时候单独提取css文件
- 增量加载reducers
- 解决热刷新reducers问题(考虑增量加载的情况)
- 升级redux-devtools到3.0.0
- 启用react-transform插件来热刷新react组件
- 添加eslint和csslint代码风格检测工具
- 升级代码依赖
- 添加greenkeeper来保持最新的npm包依赖
- 修复html发布的hash问题,采用
html-webpack-plugin来动态产生html的link和script标签. - 新增发布功能,命令
npm run deploy, 这个命令会hash编译文件到build目录,然后把里面的代码发布到本仓库的production分支.(可在tasks/publish.js里面配置)
redux-router的activeStyle没有用,初始有用,但是点击后失效,待解决(redux connect连接的组件需要传入router参数,否则会失效,尤其是导航)目前只能热刷新reducers的改变,不能热刷新react组件的改变.(因为react-transform还不支持babel6,等待支持babel6,就替换上去支持组件的热替换了)(版本1.0.3支持)还不支持hash发布.(文件version)(版本1.0.1支持)没有采用同构,而是用的html文件.(打算后面动态产生html文件,从而采用非覆盖式发布代码)(已经动态产生index.html)由于采用了style-loader,发现在chrome浏览器中,大的图片显示不出来.(bug)(压缩发布后问题解决)(chrome浏览器bug)由于采用的style-loader,会在加载dom元素后,在去加载样式,从而样式有延迟.不过只是第一次加载会有延迟.(代码压缩后,解析速度变快,问题解决)- 目前增量热刷新需要手动添加module.hot判断语句,不是太方便
- 采用动态创建的index.html文件,在每次捆绑时都会发生变化,导致bs不能动态刷新样式文件.所以采用开发的时候样式写在style里面.发布的时候,样式单独打包.
等待gh-pages包可以选取数组形式的文件,从而可以指定发布的文件夹下的东西和文件(用copy任务代替)- 等待react-router升级,目前采用history@1.13.1
- 等待redux-router修复初始化警告bug
做mock数据的处理(采用json-server来mock数据,采用node-proxy来代理远端的API)- 编写通用组件 (developing)
demo网站样式从数据赢家迁移到通用网站样式(已完成)
- 原先采用提取出css文件,合并为一个文件的样式架构,更改为动态应用样式文件.也就是css-loader
原因: 如果是比较小的项目,可以把整个网站的样式合并成一个.但是对于比较大型的项目,需要增量加载组件和样式文件.不然初次加载会比较慢.
而在采用css-inline还是sass,less这类预编译语言的时候,考虑到css-inline还不是太成熟.而且更改样式不是太方便.所以采用sass,less这类来写.(不过未来的趋势是采用css-inline来做,因为可以做到css module.这样样式不会被其他类覆盖). 所以后期打算迁移成css module这样的方式.
- 如果用箭头函数来写回调方法,需要先让组件有constructor(props).
class Button extends Component {
constructor(props) {
super(props)
}
// 需要首先添加constructor函数
clickHandle = () => {
}
}
2. 如果用上面的,回报出错误''this' is not allowed before super()'. 解决方法是因为babel 6插件`babel-plugin-transform-class-constructor-call`没有安装.