first commit

This commit is contained in:
2026-09-08 20:28:54 +08:00
commit 2ada8d3d5a
37380 changed files with 4886169 additions and 0 deletions
+3
View File
@@ -0,0 +1,3 @@
# hap-shared-utils
`hap-toolkit`共享模块
+71
View File
@@ -0,0 +1,71 @@
/*
* Copyright (C) 2017, hapjs.org. All rights reserved.
*/
const optionsConfig = {
// 枚举类型
splitChunksModeEnum: {
// 默认:冗余到每个页面JS中
REDUNDANCY: 'REDUNDANCY',
// 抽取公共JS到chunk文件中
SMART: 'SMART'
},
// 抽取公共JS的文名称
splitChunksNameEnum: {
APP: 'app-chunks.json',
PAGE: 'page-chunks.json'
}
}
const options = {
// 是否使用debug的签名证书
debug: false,
// 是否开启分析
stats: false,
// sourcemap配置
devtool: false,
// 是否禁用子包
disableSubpackages: false,
// 是否禁用流式编译
disableStreamPack: false,
// 是否禁用V8的6.5版本编译
disableScriptV8V65: false,
// 是否编译复合选择器,生成_meta信息
optimizeDescMeta: false,
// 是否压缩CSS属性名
optimizeCssAttr: false,
// 是否压缩模板属性名
optimizeTemplateAttr: false,
// TODO:是否支持页面级别的样式(暂不支持)
optimizeStylePageLevel: false,
// TODO:是否支持应用级别的样式(暂不支持)
optimizeStyleAppLevel: false,
// 延迟加载自定义组件
enableLazyComponent: false,
// 是否移除无用资源
optimizeUnusedResource: false,
// 是否将dsl打包到rpk
includeDslFromLib: false,
// 解决sourcemap资源的错位问题
matchSourcemap: false,
// 开启css样式抽取
enableExtractCss: false,
removeUxStyle: false,
// 是否启用e2e测试用例
enableE2e: false,
// 是否启用代码覆盖率检查
enableIstanbul: false,
// 抽取公共JS的配置
splitChunksMode: optionsConfig.splitChunksModeEnum.REDUNDANCY
}
/**
* 初始化命令行中传递的配置
* @param argopts - 命令行参数对象
*/
function initOptions(argopts) {
// TODO release memeory, use optimize-prop only
Object.assign(options, argopts)
}
module.exports = { options, initOptions, optionsConfig }
+14
View File
@@ -0,0 +1,14 @@
const path = require('path')
// 用户home目录
const home = require('os').homedir()
const clientRecordPath = path.join(home, 'hap-toolkit-client-records.json')
module.exports = {
projectPath: process.cwd(),
clientRecordPath,
sourceRoot: './src', // 源码根目录
signRoot: './sign', // 证书签名路径
releasePath: './dist', // 快应用包目录
outputPath: './build', // 输出目录,
dataCoverage: './.nyc_output', // 项目运行的代码覆盖率数据
server: { port: 8000 }
}
+9
View File
@@ -0,0 +1,9 @@
/*
* Copyright (C) 2017, hapjs.org. All rights reserved.
*/
const EventEmitter = require('events')
module.exports = new EventEmitter()
module.exports.PACKAGER_BUILD_DONE = 'PACKAGER.BUILD_DONE'
@@ -0,0 +1,2 @@
"use strict";var _fs=_interopRequireDefault(require("fs")),_path=_interopRequireDefault(require("path")),_util=require("./util"),_eventBus=_interopRequireDefault(require("../../event-bus"));function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}const{PACKAGER_BUILD_DONE:PACKAGER_BUILD_DONE}=_eventBus.default;function BuildModeManager(t){(0,_util.initProjectConfig)(t),this.setRoot(t)}BuildModeManager.prototype._read=function(){let t={};try{t=(0,_util.readJson)(this._configFile)}catch(t){console.log("ENOENT"===t.code?t.message:t)}t.modeOptions||(t.modeOptions={current:-1,list:[]});const e=t.modeOptions;return e.list=e.list.filter(t=>null!==t.id&&-1!==t.id),t},BuildModeManager.prototype._write=function(t){const e=t.modeOptions;e.list=e.list.filter(t=>null!==t.id&&-1!==t.id).reduce((t,e)=>(t.find(t=>t.id===e.id)||t.push(e),t),[]),this._configFile&&_fs.default.writeFileSync(this._configFile,JSON.stringify(t,null,2))},BuildModeManager.prototype.getConfig=function(){return this._read().modeOptions},BuildModeManager.prototype.getAllPages=function(){if(!this.root)return[];const t=_path.default.join(this.root,"src/manifest.json");try{const e=(0,_util.readJson)(t).router.pages||{};return Object.keys(e)}catch(t){return console.log("ENOENT"===t.code?t.message:t),[]}},BuildModeManager.prototype._addMode=function(t,e,i){const o=t.modeOptions;let n;return n=o.list.length?Math.max.apply(null,o.list.map(t=>t.id))+1:0,e.id=n,o.list.push(e),o.current=e.id,i||this._write(t),o},BuildModeManager.prototype.addMode=function(t){const e=this._read();return this._addMode(e,t,!1)},BuildModeManager.prototype.addModes=function(t){const e=this._read();return t.forEach(t=>{this._addMode(e,t,!0)}),this._write(e),e.modeOptions},BuildModeManager.prototype.delete=function(t){const e=this._read(),i=e.modeOptions,o=i.list.findIndex(e=>e.id===t);return-1===o?i.current=-1:(i.list.splice(o,1),i.current===t&&(i.current=o>0?i[o-1].id:i.list.length?i.list[0].id:-1),this._write(e)),i},BuildModeManager.prototype.update=function(t){const e=this._read(),i=e.modeOptions,o=i.list.findIndex(e=>e.id===t.id);return-1!==o&&(i.list[o]=t),this._write(e),i},BuildModeManager.prototype.select=function(t){const e=this._read(),i=e.modeOptions;return-1!==i.list.findIndex(e=>e.id===t)&&(i.current=t,this._write(e),_eventBus.default.emit(PACKAGER_BUILD_DONE)),i},BuildModeManager.prototype.setToNormal=function(){const t=this._read(),e=t.modeOptions;return e.current=-1,this._write(t),_eventBus.default.emit(PACKAGER_BUILD_DONE),e},BuildModeManager.prototype.setRoot=function(t){if("string"==typeof t){return this.root=t,this._configFile=_path.default.resolve(t,_util.CONFIG_FILE),this._read().modeOptions}return null},module.exports=BuildModeManager;
//# sourceMappingURL=BuildModeManager.js.map
+2
View File
@@ -0,0 +1,2 @@
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.readJson=readJson,exports.initProjectConfig=initProjectConfig,exports.getLaunchPage=getLaunchPage,exports.CONFIG_FILE=void 0;var _fs=_interopRequireDefault(require("fs")),_path=_interopRequireDefault(require("path")),_config=_interopRequireDefault(require("../../config"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const CONFIG_FILE=".quickapp.preview.json";function readJson(e){try{return JSON.parse(_fs.default.readFileSync(e).toString())}catch(t){throw t instanceof SyntaxError?new SyntaxError(`解析 ${e} 失败, 格式错误`):t.message.startsWith("ENOENT:")?(t.message=`读取 ${e} 失败, 找不到该文件`,t):(console.error("读取 %s 失败",e),t)}}function initProjectConfig(e){const t=_path.default.join(e,CONFIG_FILE);_fs.default.existsSync(t)||_fs.default.writeFileSync(t,JSON.stringify({},null,2))}function getLaunchPage(){let e="";const t=_path.default.join(_config.default.projectPath,CONFIG_FILE);if(_fs.default.existsSync(t))try{const{modeOptions:r}=readJson(t);if(r&&"number"==typeof r.current&&r.list){const t=r.list.find(e=>e.id===r.current);t&&(e=`${t.pathName}?${t.query}`)}}catch(e){console.log("ENOENT"===e.code?e.message:e)}return e}exports.CONFIG_FILE=CONFIG_FILE;
//# sourceMappingURL=util.js.map
File diff suppressed because one or more lines are too long
+2
View File
@@ -0,0 +1,2 @@
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getRecords=getRecords,exports.getProjectClients=getProjectClients,exports.recordClient=recordClient,exports.getRecordClient=getRecordClient,exports.clearProjectRecord=clearProjectRecord,exports.removeClientBySn=removeClientBySn;var _fs=_interopRequireDefault(require("fs")),_path=_interopRequireDefault(require("path")),_index=require("./index"),_config=_interopRequireDefault(require("../config"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function getRecords(e){let t={records:{}};try{t=JSON.parse(_fs.default.readFileSync(e).toString())}catch(e){_index.colorconsole.error(`读取hap-toolkit-client-records.json文件出错: ${e.message}`)}return t}function writeRecords(e,t){_fs.default.writeFileSync(e,JSON.stringify(t,null,2))}function getProjectClients(e){const t=_config.default.projectPath;let r=e.records;r=r instanceof Object?r:{};const o=r[t];return o&&o instanceof Array?o:[]}function recordClient(e,t,r){const o=_path.default.dirname(e),i=_config.default.projectPath;let n;if((0,_index.mkdirsSync)(o),_fs.default.existsSync(e)){n=getRecords(e);let o=getProjectClients(n);for(r&&r(`writeClientLogFile(): before: ${JSON.stringify(n.records)}`),o=o.filter(e=>e.ip!==t.ip||e.port!==t.port);o.length>4;)o.shift();n.records[i]=o}else n={records:{}},n.records[i]=[];n.records[i].push(t),writeRecords(e,n),r&&r(`writeClientLogFile(): after: ${JSON.stringify(n.records)}`)}function getRecordClient(e,t,r){if(_fs.default.existsSync(e)){return getProjectClients(getRecords(e)).find(e=>e.sn===t&&e.ip===r&&e.port)}}function clearProjectRecord(e){if(_fs.default.existsSync(e)){const t=getRecords(e),r=_config.default.projectPath;t.records[r]=[],writeRecords(e,t),_index.colorconsole.info("### App Server ### 清空调试设备记录")}else _index.colorconsole.info("### App Server ### 没有需要清空的调试设备记录")}function removeClientBySn(e,t,r){if(_fs.default.existsSync(e)){const o=_config.default.projectPath,i=getRecords(e),n=i.records,c=getProjectClients(i);r&&r(`_removeItemFromClientLogFile(): before: ${JSON.stringify(n)}`),n[o]=c.filter(e=>e.sn!==t),writeRecords(e,i),r&&r(`_removeItemFromClientLogFile(): after: ${JSON.stringify(n)}`)}}
//# sourceMappingURL=record-client.js.map
+34
View File
@@ -0,0 +1,34 @@
{
"name": "@hap-toolkit/shared-utils",
"version": "0.6.15",
"description": "hap shared utils",
"engines": {
"node": ">=8.0.0"
},
"publishConfig": {
"access": "public"
},
"keywords": [
"hap-toolkit",
"quickapp"
],
"main": "lib/index.js",
"directories": {
"lib": "lib",
"test": "__tests__"
},
"files": [
"lib/**/*.js",
"config.js",
"compilation-config.js",
"event-bus.js"
],
"dependencies": {
"chalk": "^2.4.2",
"qrcode-terminal": "^0.12.0"
},
"devDependencies": {
"strip-ansi": "^5.2.0"
},
"gitHead": "9ab1ec4ad9d65fccac5f3bad360c96b940a36a65"
}