
pcic/climate-explorer-frontendPCIC Climate Explorer 前端镜像是PCIC Climate Explorer的前端界面实现,基于Node.js、React.js、Webpack、Babel等现代前端技术栈(ES6+)构建。该镜像提供气候数据的可视化与探索界面,通过配置环境变量可连接后端气候数据服务、地图瓦片服务等,支持开发和生产环境部署。
前端配置通过环境变量实现,关键变量如下:
| 环境变量 | 说明 | 默认值 |
|---|---|---|
| NODE_ENV | 环境类型,设为"production"启用生产构建优化 | "development" |
| CE_BACKEND_URL | 后端气候数据的公开可访问URL | 开发:http://localhost:8000/api 生产:[***] |
| TILECACHE_URL | 基础地图图层的Tilecache URL | [***] |
| NCWMS_URL | 气候图层的ncWMS URL | [***] |
| CE_ENSEMBLE_NAME | 后端请求使用的集合名称 | "ce" |
| CE_BASE_PATH | 前端应用的URL基础路径(用于代理服务器配置) | 无默认值,生产环境需指定(如"/marmot/app") |
构建Docker镜像
克隆代码仓库:
bashgit clone [***] cd climate-explorer-frontend
构建镜像:
bashdocker build -t pcic/climate-explorer-frontend-image .
运行Docker镜像
运行时需设置以下环境变量(生产环境必须配置):
bashdocker run --restart=unless-stopped -d \ -p <外部端口>:8080 \ -e NODE_ENV=production \ -e CE_BACKEND_URL=[***] \ -e CE_ENSEMBLE_NAME=ce \ -e NCWMS_URL=[***] \ -e TILECACHE_URL=[***] \ -e CE_BASE_PATH=/marmot/app \ --name climate-explorer-frontend \ pcic/climate-explorer-frontend:latest
说明:
NODE_ENV设为"production"启用生产模式;CE_BACKEND_URL为后端API基础URL;CE_BASE_PATH需与代理服务器配置的路径一致。
依赖安装与启动
bash# 安装依赖 npm install # 启动开发服务器(带热模块替换) npm start
测试
bash# 运行单元测试 npm test
代码检查(Linting)
使用ESLint(基于AirBnb预设)进行代码检查:
bash# 检查所有文件 npm run lint # 检查指定文件或匹配模式 npm run lint:glob <文件名或glob模式>
可通过git/hooks/pre-commit-eslint钩子在提交前检查 staged 的.js文件(仅阻止错误,警告允许),安装至.git/hooks目录即可启用。如需跳过检查,可使用git commit --no-verify(不推荐)。
版本发布步骤:
package.json中的version字段NEWS.md中总结自上次版本的变更bashgit add package.json NEWS.md git commit -m"Bump to version x.x.x" git tag -a -m"x.x.x" x.x.x git push --follow-tags
代码风格遵循ESLint配置,主要基于AirBnb预设。常见需注意的规则(按违规频率排序):
// 注释...而非//comment...)if和for与左括号间需加空格(if (cond)而非if(cond))const或let声明变量(优先const),避免var(const和let具有块级作用域)
for (const prop in obj),遍历可迭代对象使用for (const val of iterable),计数循环使用for (let i = 1; i < n; i++)

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务