1. 一、git bash here
  2. mdkr
  3. cnpm init -y
  4. ls -a
  5. ls -l
  6. ls -la隐藏的也可查看
  7. cat package.json
  8. 二、npm
  9. npm i webpack-dev-server -g
  10. 全局:任何目录运行
  11. 本地:本地需要调用附带的插件
  12. npm list
  13. npm list -g
  14. npm uninstall supervisor -g 全局删除
  15. npm remove supervisor -g全局删除,彻底卸载,再安装
  16. npm i supervisor --save-dev||-D 开发依赖:项目上线不需要的,例如:babelwebpack
  17. npm i jquery -S项目依赖-----dependencies
  18. 奇数非稳定版本
  19. cnpm info jquery
  20. 升级---直接修改配置文件
  21. cnpm update
  22. ^表示第一个版本号不变后面取最高
  23. ~表示第一第二个约定好
  24. *取最新版本
  25. --------------------------------版本升级问题:删除后修改json,在安装,mac上可能可以
  26. npm outdated
  27. rm -rf强制删除所有
  28. npm cache clear清除缓存安装
  29. nrm ls npm
  30. nrm test
  31. nrm use taobao ----切换源
  32. npm脚本
  33. npm run dev
  34. 三、git工具
  35. 本地仓库
  36. 远端仓库-remote
  37. gitLab/github---ssh
  38. 主干发布、分支开发
  39. -----------------配置远程库---------------------------
  40. gitignore----不上传服务器的文件夹
  41. git config --global user.name
  42. git config --global alias.ci commit----- commit别名ci
  43. ---------------clone下来-------------------
  44. git clone ssh/https-----https公开自己代码
  45. git st状态
  46. ---------------查看状态run起来----------------------------------------
  47. git add .
  48. git ci -am "asds"添加
  49. git push
  50. .........................创建分支..................................
  51. git branch
  52. git branch name创建分支不切换
  53. git checkup -b name-2017-0223-bao-bugfix
  54. git co -b name-2017-0223-bao-bugfix创建分支并切换
  55. 修改文件
  56. git ci -am "adsd"
  57. git push --set-upstream origin name分支上传
  58. ----------------------merge获取其他分支----------------------------------
  59. 在本地创建多个分支
  60. git branch -r显示远端分支
  61. open index.html
  62. git co master------------主分支提交master
  63. git merge origin/name 分支提交后在mastermergemaster与分支合并做修改,保存本地库
  64. git ci -am "merge-name"
  65. git push发布
  66.  
  67. git log查看历史版本
  68. $ git reset --hard 3628164
  69. ---------------------merge master-----------
  70. 其他分支与master同步
  71. git checkout master----切换分支到master执行
  72. git pull----即可完成master更新同步
  73. git merge master??
  74. git rebase master-----保持与本地一致
  75. rebase合并主干的修改,如果有冲突在此时解决
  76. ---------------------------------------------------
  77. git br -a可看到远端所有分支
  78. clone后新创建的分支拿到本地仓库方法:
  79. git fetch origin newname
  80. git br
  81. git co newname
  82. git br-----即可拿到
  83. open index.html
  84. --------------------------
  85. 权限设置
  86. Collaborators:添加Add collaboator
  87. --------------总结----------------------
  88. 管理员merge----开发人员pull即可看到项目进度!
  89.  
  90. 三、***********************webpack*************************
  91. 1commonJS
  92. 2require('./name'),斜杠-----本文件夹
  93. require('name'),-----node_modules
  94.  
  95. ***********************布局*************************
  96. build--------编译后发布代码文件夹
  97. src-------------开发文件夹
  98. |---component_dev-------
  99. |---script-------js
  100. -----|---app.js
  101. -----|---component---组件
  102. -----|---redux
  103. |----store.js
  104. |---index.js
  105. |---style---------css
  106. |----index.ejs------模板改变也会生成新的hash
  107. <title><%= htmlWebpackPlugin.option.title%></title>
  108. index.html
  109. package.json
  110. webpack.config.js
  111. .git
  112.  
  113. cssjshtml,其他例如第三库CDN
  114. img呢?服务器?
  115. ***********************webpack.json*************************
  116. 'script':{
  117. "build":webpack-dev-server
  118. }
  119. ***********************webpack.config.js*************************
  120. 后端拿到html
  121. 前后端两个域名?run到一起
  122. var webpack=require('webpack')
  123. var htmlWebpackPlugin=require('html-webpack-plugin')--------引入插件
  124. var ExtractTextPlugin=require('extract-text-webpack-plugin')
  125. var openBrowserPlugin=require('open-browser-webpack-plugin')
  126. mudule.exports={
  127. entry:{--------------可单页面入口。可多入口文件
  128. page1:'./src/app1.js',
  129. page2:'./src/app2.js'
  130. },
  131. output:{----------------js文件和其他生成的文件
  132. path:__dirname+'/build',------__dirname物理路径,后面build没有点,
  133. //filename:'app_[hash].js'---上线用
  134. filename'app.js'---开发用
  135. //filename:'[name]_[hash].js'-----------生成多个js
  136. },
  137. devServer:{
  138. contentBase:'./build'-----------访问目录下的index.html--把index.html放到build
  139. host:"localhost"---------域名
  140. port'9000'----端口
  141. historyApiFallback:false -------------是否使用H5historyApi
  142. proxy:{-----------代理
  143. '/api':{----------------有api即认为访问后端,例如'/api/list.php'
  144. target:'http://localhost:3000'---地址栏有/api即跳到:3000
  145. pathRewrite:{'^/api',''}------------干掉'./api'
  146. changeOrigin:true---------------------跨域,非本地跨域
  147. }
  148.  
  149. }
  150.  
  151. },
  152. module:{
  153. loaders:[
  154. // {-->非抽离声明
  155. // test:/\.css$/,------css打包到js
  156. // loader:'style-loader!css-loader'
  157. // },
  158. {
  159. test: /\.css$/,
  160. loader: ExtractTextPlugin.extract({
  161. fallback: 'style-loader',
  162. use: 'css-loader'
  163. })
  164. },
  165. // {
  166. // test:/\.scss$/,------css打包到js
  167. // exclude: /node_modules/,--------------刨除哪个!!!
  168. // loader:'style-loader!css-loader!sass-loader'
  169. // }, -->非抽离声明
  170. {
  171. test:/\.scss$/,
  172. loader:ExtractTextPlugin.extract({--------抽离声明
  173. fallback:'style-loader',------------------------解析最后一个loaderextract,这个案例是style,解析的是css
  174. use:'css-loader!sass-loader'----------------不要重复声明style-loader
  175. })
  176. },
  177. {
  178. test: /\.js$/,
  179. exclude: /node_modules/,--------------刨除哪个!!!
  180. loader: 'react-hot-loader!babel-loader'---------------react热替换,厉害了
  181. }
  182. ]
  183. },
  184. plugin:[
  185. new htmlWebpackPlugin({--------------html文件自动生成插件实例化,有自己的默认模板
  186. filename:'index.html',-----------------输出的文件名,会生成带有hash值的js
  187. template:'./src/index.ejs',------------模板文件
  188. title:'豆瓣电影'
  189. }),
  190. new ExtractTextPlugin({-------------------解析抽离css并会在index.htmllink标签
  191. filename:'app_[hash].css',----------------可加版本号
  192. disable:false,-------true关闭
  193. allChunks:true---------------入口文件
  194. }),
  195. new webpack.optimize.UglifyJsPlugin({
  196. compress:{----------------压缩,最后上线需要一次
  197. warning:false-------是否显示错误信息,false不显示
  198. },
  199. output:{
  200. comments:false----------是否需要注释,false不需要
  201. }
  202. }),
  203. new openBrowserPlugin({ url: 'http://localhost:8080' })------------------webpack 启动后自动打开浏览器插件!!!!1!!厉害了
  204. ],
  205. externals:{------------------抽离js第三方类库
  206. "react":"window.React",----------配置后不会打包react,手动打包即可,包特别大
  207. "react-dom:"window.ReactDOM"
  208. "react-router":"window.ReactRouter"
  209. "redux":"window.Redux"
  210. 'react-redux':'widow.ReactRedux'
  211. }
  212. }
  213.  
  214. ELEMENT解析与源码不同
  215. 源码---是后台ng、rg之后的
  216.  
  217. css/js版本控制,服务器缓存原来版本----回滚---使用构建工具
  218. 哈希值hash-----根据内容算法生成来css、js控制版本
  219.  
  220. npm install html-webpack-plugin---------------------html自动生成插件
  221. npm i sass-loader -D
  222. npm react-hot-loader -D---------------------react热替换
  223. npm i babel-preset-react -D----------------react预设
  224. npm i extract-text-webpack-plugin -D-----------------抽离文本插件
  225. npm i react-dom -S--------------项目依赖
  226. npm i open-browser-webpack-plugin---------------
  227. require---Es5
  228. import from ---Es6
  229.  
  230. 1、const Index='sd'
  231. export {Index}
  232. import {Index} from index.js
  233. 2、const Index='sd'
  234. export {Index as defult}
  235. import Index from index.js---------------Index花括号就不用了
  236. ***********************babel编译器安装*************************
  237. babel-core---------------babel-loader调用
  238. babel-loader------------编译
  239. babel-preset-es2015 -D-----------编译es6
  240.  
  241. react-hot-loader!babel-loader----------------------react热替换
  242.  
  243. ***********************babel*************************
  244.  
  245. jsx------babel解析,webpack直接可以识别Es6语法,不过jsx还是需要babel来解析,babel还可以解析Es7位es5
  246.  
  247. {
  248. "preset":["es2015","react","stage-0"]
  249. }
  250. ***********************packge.json*************************
  251.  
  252. "babel-polyfill":"^6.23.0"---------------------低版本andrio不支持则降低版本,很重要!!
  253. 四、***********************mock数据*************************
  254. npm i json-server -g-----------安装
  255. json-server src/mock.js--------启动服务,启动mock.js文件
  256. mock.js
  257.  
  258. var list = require('./list.json')
  259. module.exports = function() {
  260. return {
  261. 'list.php': list
  262. }
  263. }
  264. 访问localhost:3000
  265.  
  266. 在fetch里fetch("/api/kind2.php").then(res=>res.json()).then(res=>{})
  267. --------------------------------
  268. componentDidMount() {
  269. fetch('/api/list.php')
  270. .then(response=>response.json())
  271. .then(res=>{
  272. // console.log(res);
  273. this.setState({
  274. name: <div>{res.name}</div>
  275. })
  276. })
  277. }
  278.  
  279. 五、reset.css公共样式
  280.  
  281. 六、搭建页面结构
  282. andriod
  283. ios
  284. woff、ttf-------------多次设置font-face会merge并不会覆盖
  285. //CDN简写
  286. @font-face{
  287. font-family:yofont;
  288. src:url(/icofont/iconfont.woff) format("woff"),
  289. url(/iconfont/iocnfont.ttf) format('truetype')
  290. }
  291. 1像素线、、、、、、、、、、、、、、、
  292. 空元素相对定位
  293. 伪元素:绝对定位
  294. 根据dpr缩放
  295. 七、react-router
  296.  
  297. "react-router": "^3.0.2"--------------用4.0版本会没有ReactRouter.min.js,引用react-router.min.js会报Cannot read property 'location' of undefined
  298. 引用ReactRouter.min.js
  299.  
  300. react-router.min.js-------------一般用后端开发
  301.  
  302. <Link to=''/>
  303. <Router>
  304. <IndexRoute component={}/>
  305. <Route path='' component={}/>
  306. </Router>
  307. 抽离后要在ejs里引文件,否则找不到
  308. 父组件获得子组件的参数------------------
  309. 子组件通过this.props.onClickHandler.bind(this,"abc")
  310. -------------onClickHandler是父组件定义的方法,abc是子组件的参数,通过函数传给父组件
  311. 也可以-----------子组件设置this.state={data:'abc'},,父组件在设置ref="abc",在ditmount中this.refs.state.data
  312. 子组件获得父组件的属性方法----------父组件设置属性与方法,子组件this.props.name获得
  313. 八、API
  314. mock数据
  315. share.baidu.com----------------------百度分享
  316. mern----------------------react-cli
  317. 九、组件YO
  318. npm i babel-preset-stage-0 -D
  319. 十、redux
  320. onEnter事件可以检测路由切换
  321. 组件渲染从内向外
  322. Didmountupdate中也可以检测路由切换
  323. Index中包含自己及切换的子路由
  324. cnpm i react-redux -S
  325. *************************************十、redux***********************************************
  326. 拷贝redux,react-deux
  327. ejx要添加
  328. connect ----------react-redux
  329. connect(mapStateToProps,mapDispatchToprops)(Index)
  330.  
  331. 路由
  332. 引入{Provider}
  333. {store}
  334. <Provider store={store}>
  335.  
  336. </Provider>
  337. 某个组件状态需要共享
  338. 某个状态需要在任何地方都能拿到
  339. 一个组件需要改变全局状态
  340. 一个组件需要改变另一个组件的状态
  341. **************************************YO框架**********************************************
  342. base:设置html里的font-size--------------------YO框架以640的iphone5做的,
  343. iphone6,1vw=0.26666666px=100/375
  344. **************************************history*************************
  345. browserhistory:h5的,浏览器就不会有#了
  346. browserhistory.goBack();goFoward()
  347. 改用browserhistory,用事件定义跳转,hashhistory Link方法就不适用了
  348. ******************************路由传参***************************************
  349. path="/list/:type"-------------设置动态路由
  350. 取type方法:this.props.params
  351. ************************touch-action**************************
  352. touch-action:none
  353.  
  354. 手机里无webpack,无法调用线上数据
  355. 1、放json里,
  356. 2、放服务器,装ngix,方向代理
  357. 3、放数据库。
  358.  
  359. ************************nginx**************************
  360. http://nginx.org/en/download.html下载地址
  361. homebrew安装moc ------------
  362.  
  363. start nginx
  364. nginx -s stop
  365.  
  366. gzip on压缩传输
  367. pwd
  368.  
  369. nginx的使用
  370. 1、修改conf/nginx.conf
  371. 把nginx.conf里的server下的全部注释掉,(35-79行)
  372. 把gizp on解注释,添加 include ../conf.d/*.conf;
  373. 2、建conf.d文件夹,建工程名的配置文件,配置如下:
  374. server{
  375. listen 80;----一般都是80
  376. server_name localhost;
  377. root E:/lianlianLife/dev/build;
  378. }
  379. 3、启动nginx,访问localhost即可
  380. ************************nginx**************************
  381. ************************前后端联调**************************
  382. Postman
  383.  
  384. HostAdmin App----C:\Windows\System32\drivers\etchosts-------host文件位置
  385. 127.0.0.1 ----------- localhost-------域名解析--先走本地
  386. ip计算识别,一个ip可以有多个域名
  387. 如何清除DNS缓存
  388. src="http://www.douban.com/libs/"------index.html配置
  389. ping www.baidu.com得到网页ip
  390. ip+域名设置--------------得到远端
  391. ipconfig/flushdns-----------刷新DNS解析缓存
  392. 跨域:
  393. cors
  394. jsonp
  395. window.name
  396. nginx方向代理
  397.  
  398. location /api{
  399. proxy_pass http://localhost:3000
  400. }
  401.  
  402. modal---组件
  403. stuo nginx
  404. nginx杀掉进程的方法----taskkill /fi "imagename eq nginx.EXE" /f,可以杀死名字为
  405. nginx.EXE的所有进程
  406. http://www.cnblogs.com/CoreXin/p/5566607.html
  407.  
  408. http://blog.csdn.net/u010977147/article/details/53489160l两个参数解决

react+redux+webpack+git技术栈的更多相关文章

  1. 从零开始搭建属于你的React/redux/webpack脚手架

    大家好,我是苏南,今天要给大家分享的是<<我的react入门到放弃之路>>,当然,也不是真的放弃啦--哈哈,这篇博客原本是从17年初写的,一直没有在csdn发布,希望今天不会太 ...

  2. 用react+redux+webpack搭建项目一些疑惑

    --save-dev开发用 例如:webpack --save开发和发布用 例如:react

  3. git 技术栈

    之前用的都是svn ,git还是要了解的,万一哪天要用了呢

  4. 使用 webpack + react + redux + es6 开发组件化前端项目

    因为最近在工作中尝试了 webpack.react.redux.es6 技术栈,所以总结出了一套 boilerplate,以便下次做项目时可以快速开始,并进行持续优化.对应的项目地址:webpack- ...

  5. react redux 二次开发流程

    在一个大项目中如何引入redux及其相关技术栈(react-redux redux-thunk redux-immutable ),已经成为react前端工程师不可或缺的技能,下面通过实现一个简单的t ...

  6. webpack+babel+react+antd技术栈的基础配置

    webpack+babel+react+antd技术栈的基础配置 前段时间使用webpack+babel+react+antd做了一套后台管理系统,刚开始被一大堆的新知识压的喘不过气来,压力挺大的.还 ...

  7. 使用react+redux+react-redux+react-router+axios+scss技术栈从0到1开发一个applist应用

    先看效果图 github地址 github仓库 在线访问 初始化项目 #创建项目 create-react-app applist #如果没有安装create-react-app的话,先安装 npm ...

  8. 用react系列技术栈实现的demo整合系统

    引子 学生时代为了掌握某个知识点会不断地做习题,做总结,步入岗位之后何尝不是一样呢?做业务就如同做习题,如果‘课后’适当地进行总结,必然更快地提升自己的水平. 由于公司采用的react+node的技术 ...

  9. react技术栈实践(2)

    本文来自网易云社区 作者:汪洋 这时候还没完,又有两个问题引出来了. 按照上面的配置,第三方库 antd 竟然也被编译了,导致样式失败. react中,一旦包裹了子组件,子组件没办法直接使用 styl ...

随机推荐

  1. MySQL高级学习笔记

    1. 变量相关 临时变量 -- 定义在函数体或存储过程中的变量 -- 用法在讲函数时会提到 用户变量,也称会话变量 -- 用户变量只对当前连接用户有效,其他连接用户无法访问 -- 使用 @ 标识符声明 ...

  2. 快速了解Druid——实时大数据分析软件

    Druid 是什么 Druid 单词来源于西方古罗马的神话人物,中文常常翻译成德鲁伊.  本问介绍的Druid 是一个分布式的支持实时分析的数据存储系统(Data Store).美国广告技术公司Met ...

  3. Android RocooFix热修复动态加载框架介绍

    RocooFix Another hotfix framework 之前的HotFix项目太过简单,也有很多同学用Nuwa遇到很多问题,作者也不再修复,所以重新构建了一套工具. Bugfix 2016 ...

  4. Java中字符串的一些常见方法

    1.Java中字符串的一些常见方法 /** * */ package com.you.model; /** * @author Administrator * @date 2014-02-24 */ ...

  5. 【mongodb系统学习之五】mongodb启动最常用参数

    五.mongodb启动时其他常用参数的使用(都是选用): 1).--logappend,指定日志的写入方式为追加,强烈建议使用: 2).--port,指定mongodb的端口号,当不使用这个参数的时候 ...

  6. hihocoder Challenge 29 A.序列的值

    我现在就感觉我这人现在真的没有dp的意识 其实真写起来也不难,但是把就是练的少思维跟不上,dp从根本上就是一种状态的提炼和聚集. 按照题解的意思来,表示二进制第i位的值为j(0,1)的组合有多少,然后 ...

  7. TCP/IP资料整理

    一.概念 1. TCP/IP常见帧格式 2. 详解网络嗅探工具的原理 二.API 1. Linux kernel tcp 连接建立详解——由listen系统调用的backlog参数引发的长篇大论

  8. ASP.NET WebForm 通过 PagedDataSource 实现 Repeater 的分页

    1.效果图&代码说明   1.效果图     2.代码说明 1.翻页按钮         前台两个LinkButton(上一页.下一页),设置不同的CommandName.CommandArg ...

  9. (luogu1704)寻找最优美做题曲线 [TPLY]

    寻找最优美做题曲线 题目链接:https://www.luogu.org/problemnew/show/P1704 题目大意: 求包含指定点的最长不降子序列(严格递增) 题解 首先我们发现 一个序列 ...

  10. 【BZOJ4530】大融合(Link-Cut Tree)

    [BZOJ4530]大融合(Link-Cut Tree) 题面 讨厌权限题!!! Loj链接 题目描述 小强要在 N个孤立的星球上建立起一套通信系统.这套通信系统就是连接 N个点的一个树.这个树的边是 ...