。
执行命令:
npm run start
启用带有hmr
功能的本地服务开发环境
npm run debug
启用不带hrm
功能的本地服务开发环境
npm run mock
启用带有数据mock
功能的本地服务开发环境(不带hmr,因该功能还不稳定Webpack用来做模块热替换)
npm run build
执行项目构建,构建至.build
文件夹,用于线上发布
npm run test
执行单元测试
数据mock配置说明
目前数据mock功能只能支持mock一个接口(设定为/api/list
,所以所有的mock请求都请求这一个接口),在配置中,需要将不同的请求区分配置放在req参数中,然后在配置对象中指定req对应值返回的数据即可。
配置完数据后要想使得mock的数据生效,需要关闭当前本地服务,执行npm run mock
重新启动服务,mock数据方可生效。
技术方案
reflux + react
webpack + gulp + koa(用于mock数据)
npm
目录结构
├── .build [项目发布后生成的目录或文件]
└─── sc-radar [前端开发代码目录]
├── app.js [业务js目录]
├── app.css [业务css目录]
└── index.html [入口文件]
├── app [前端开发静态资源]
├── gulp [gulp任务目录]
├── mock [ajax请求数据mock配置]
├── node_modules [依赖]
├── test [测试]
├── .editorconfig [代码格式化小工具配置]
├── .eslintrc [eslint代码检查配置文件]
├── .gitignore [配置git操作会忽略的文件]
├── buildConfig.js [构建配置文件]
├── gulpfile.js [gulp任务执行入口文件]
├── HISTORY.md [修改记录]
├── index.html [spa入口]
├── make-webpack.config.js [webpack-config统一配置文件]
├── package.json [前端项目依赖配置]
├── READMD.md [你在看的文件]
├── routes.js [koa proxy路由]
├── server-with-mock.js [koa利用中间件起本地服务]
├── webpack-dev-mock.config.js [带mock功能的本地服务配置]
├── webpack-dev-server.config.js [不带hmr功能的本地服务配置]
├── webpack-hot-dev-server.config.js [带hmr功能的本地服务配置]
└── webpack-production.config.js [构建用于部署的静态资源文件配置]
依赖说明
lodash "react-router": "1.0.0-beta3" 不稳定版本,后续要关注下更新
webpack记录
output 里的 publicPath: '/build/' 注释掉,此配置会导致生成build中的css引用的字体路径为/build/xxxx (publicPath:'/')
BUG LIST
console 报错 Invariant Violation: addComponentAsRefTo(...): Only a ReactOwner can have refs. This usually means that you're trying to add a ref to a component that doesn't have an owner (that is, was not created inside of another component's render
method). Try rendering this component inside of a new top-level component which will hold the ref.
解决方法:同时使用了两个版本的react,删除本地的react即可
react-highcharts 用webpack打包,使用babel打包后报错
解决方法:react-highcharts自身已经用webpack打包,二次打包时添加 'use strict'; 手动删除 'use strict'; 报错消失,通过配置webpack config 的loader,修改{test: /.(js)$/,loader: 'babel-loader?loose=all'}, 为 {test: /.(js)$/,exclude: /node_modules/,loader: 'babel-loader?loose=all'}, 可以解决此问题。
重构代码组织目录,点击菜单报错
type.toUpperCase() is not a function
由于重构 sideItem ,sideNav 导致了循环引用。webpack并未报错,只是返回了 {} 。导致 React无法识别。
模型: Stroe : state [a:'',b:''] , onGetA: Ajax , trigger({a:a}) onGetB: Ajax , trigger({b:b}) componentsDidMount : Action.getA , Action.getB
问题:组件中的显示情况,当ajax获取到数据a后,组件中的a数据更新,当ajax获取到数据b后,组件中的b数据更新了,但是之前a数据更新的结果消失了。调试:render中用console.log查看组件的state,一共有三条记录: this.state a:'',b:'' 第一次渲染 this.state a;'value' ajax获取到了a的数据,但是state中没有b this.state b:'value' ajax获取到了b的数据,但是state中没有a解决方法: 将store中的trigger({a:a}),trigger({b:b})都修改为trigger({a:a,b:b})
jsPlumb 打包
imports-loader exports-loader
webpack.config.js :
module.noParse : /min\.js|jsPlumb.*\.js/ ### 不解析依赖
usage method 1:
var jsPlumb = require('imports-loader?this=>window!exports-loader?jsPlumb!./dom.jsPlumb-1.7.7-min.js');
usage method 2:
require('jsPlumb') ; // webpack.config.js loaders: {test: /\.jsPlumb.*\.js$/, loader: 'imports-loader?this=>window!exports-loader?jsPlumb'} // or resolve.alias
前言:在刚接触到一个项目的时候,还没搞懂它的路由和文件结构的时候,而你的项目又充斥着大量重复/相似代码,往往在解决一个bug的时候会花费大量的时间在找对应文件上!!此时,你需要一个react-dev-inspector !!!!它可以使你点击页面上元素时,直接跳转到编辑器所在文件。这个插件目前也支持在Vite2、create-react-app、Umi中使用,接入也都很简单,可以参考react-d
报错内容 Error: Cannot find module 'react-dev-utils/crossSpawn' at Function.Module._resolveFilename (module.js:536:15) at Function.Module._load (module.js:466:25) at Module.require (module.js:
报错内容: Error: Cannot find module 'react-dev-utils/crossSpawn' at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15) at Function.Module._load (internal/modules/cjs/loader.j
Cannot find module 'react-dev-utils/crossSpawn' 报错解决方案 参考文章: (1)Cannot find module 'react-dev-utils/crossSpawn' 报错解决方案 (2)https://www.cnblogs.com/llcdbk/p/12325526.html 备忘一下。
React 启动报错: Failed to compile. ./node_modules/react-dev-utils/formatWebpackMessages.js Module not found: Can't resolve 'D:\react\yunkj\node_modules\babel-preset-react-app\node_modules\@babel\runtime/
场景:在下载完插件fetch-jsonp(cnpm install fetch-jsonp --save)出现以下错误 internal/modules/cjs/loader.js:582 throw err; ^ Error: Cannot find module 'react-dev-utils/crossSpawn' at Function.Module._res
背景 在之前 实现create-react-app packages 中的 create-react-app 这篇学习记录里头,七七八八实现了 create-react-app 主要流程,再往下就到了 script 命令执行,我们常用的两个命令就是 start 和 build 了,这两个命令也有点相似,我们就来看看 “非死不可” 是怎么实现的吧 流程分析 react-scripts/package
问题内容: Kubernetes似乎只不过是将容器部署到集群云中。似乎没有碰到的是开发和暂存环境(或类似环境)。 在开发过程中,您希望通过一些重要更改尽可能接近生产环境: 本地部署(或至少在 您只有您可以访问的地方 ) 在页面刷新时使用 最新的源代码 (假设它是一个网站;理想情况下,在本地文件保存上页面自动刷新,如果您挂载源代码并使用诸如Yeoman之类的东西就可以完成)。 同样,人们可能希望非公
Webpack 是一个前端资源加载/打包工具,只需要相对简单的配置就可以提供前端工程化需要的各种功能,并且如果有需要它还可以被整合到其他比如 Grunt / Gulp 的工作流。 安装 Webpack:npm install -g webpack Webpack 使用一个名为 webpack.config.js 的配置文件,要编译 JSX,先安装对应的 loader: npm install ba
本文向大家介绍PHP+Oracle本地开发环境搭建方法详解,包括了PHP+Oracle本地开发环境搭建方法详解的使用技巧和注意事项,需要的朋友参考一下 安装instant client 首先,是从https://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html下载相应的数据库版本对应的basic和devel的rpm包或zip
Egg.js应用开发-本地开发 平台流程 本地开发 Egg.js应用开发-本地开发 更新时间:2018-08-09 18:40:14 本章讲解:Egg.js 应用如何开发, 待补充.. 平台流程 进入应用开发界面,可以在页面上看到应用的 AppKey、AppSecret 以及代码仓库信息。 本地开发 克隆代码 git clone git@code.aliyun.com:iot-a124labfag
Web 插件开发-本地开发 安装开发环境 本地开发 开发资源 Web 插件开发-本地开发 更新时间:2018-07-04 18:46:18 本章介绍插件的本地开发步骤。 安装开发环境 请参照 Bone Web 文档安装开发环境:https://bone.aliyun.com/bone-web/bonewebsdk.html?name=zm1rpl 本地开发 创建项目: bone init 1.选
一、使用 devServer 为什么要使用 devServer? 答:因为在开发调试的过程中不用频繁的去执行型打包命令,等待打包完成才能进行调试。devServer 会自动在内存内打包,并自动打开或刷新浏览器。 1.1、核心配置 /* webpack.config.js webpack的配置文件 作用:指示webpack干哪些活(当你运行webpack指令时,会加载里面的配置)所有
我有一个烧瓶应用程序,我在本地运行和测试。每次我对应用程序代码进行更改,这些更改都会反映在开发环境中http://127.0.0.1:8000/只需简单的浏览器刷新。 现在,我必须终止Flask应用程序,然后重新启动该应用程序。我正在使用gunicorn启动Flask应用程序。 不确定更改了什么,但如何配置应用程序,使更改在刷新时生效? 我在init中有下面一行代码。py:
注意:本文停止更新,请直接转到kubernetes-vagrant-centos-cluster仓库浏览最新版本。 当我们需要在本地开发时,更希望能够有一个开箱即用又可以方便定制的分布式开发环境,这样才能对Kubernetes本身和应用进行更好的测试。现在我们使用Vagrant和VirtualBox来创建一个这样的环境。 部署时需要使用的配置文件和vagrantfile请见:https://git