aiot-toolkit 1.0.18-aspect-beta.17 → 1.0.18-aspect-beta.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -122,6 +122,10 @@ module.exports = function genWebpackConf(launchOptions, mode) {
|
|
|
122
122
|
if (globalConfig.aspectTemplate.isAspect) {
|
|
123
123
|
BUILD_DIR = path.resolve(globalConfig.aspectTemplate.outputPath, path.basename(cwd))
|
|
124
124
|
DIST_DIR = path.resolve(globalConfig.aspectTemplate.outputPath, '')
|
|
125
|
+
// 打包vela产物时,文件夹名称+.lite
|
|
126
|
+
if (globalConfig.aspectTemplate.packToVela) {
|
|
127
|
+
BUILD_DIR = path.resolve(globalConfig.aspectTemplate.outputPath, `${path.basename(cwd)}.lite`)
|
|
128
|
+
}
|
|
125
129
|
// 清理 BUILD_DIR
|
|
126
130
|
cleanup(BUILD_DIR)
|
|
127
131
|
} else {
|
|
@@ -171,13 +175,21 @@ module.exports = function genWebpackConf(launchOptions, mode) {
|
|
|
171
175
|
|
|
172
176
|
valiedateSkeleton(SRC_DIR, manifest)
|
|
173
177
|
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
initCompileOptionsObject({
|
|
178
|
+
// 是否需要设置全局的打包模式为Mirtos,先初始化为false
|
|
179
|
+
initCompileOptionsObject({ enableMirtos: false })
|
|
180
|
+
if (globalConfig.aspectTemplate.isAspect) {
|
|
181
|
+
// 避免tv, tv-h5设备干扰打包
|
|
182
|
+
initCompileOptionsObject({ enableMinaH5: false })
|
|
183
|
+
// aspect分布式打包根据参数来判断打包模式
|
|
184
|
+
if (globalConfig.aspectTemplate.packToVela) {
|
|
185
|
+
initCompileOptionsObject({ enableMirtos: true })
|
|
186
|
+
}
|
|
179
187
|
} else {
|
|
180
|
-
|
|
188
|
+
// 一般情况下的配置
|
|
189
|
+
const { deviceTypeList } = manifest
|
|
190
|
+
if (deviceTypeList && deviceTypeList.includes('watch')) {
|
|
191
|
+
initCompileOptionsObject({ enableMirtos: true })
|
|
192
|
+
}
|
|
181
193
|
}
|
|
182
194
|
|
|
183
195
|
// 设置合适的v8版本
|
|
@@ -412,7 +424,7 @@ module.exports = function genWebpackConf(launchOptions, mode) {
|
|
|
412
424
|
const { icon: appIcon, versionName, versionCode, subpackages, workers, banner = '' } = manifest
|
|
413
425
|
let appPackageName = manifest.package
|
|
414
426
|
if (globalConfig.aspectTemplate.isAspect) {
|
|
415
|
-
appPackageName = path.basename(
|
|
427
|
+
appPackageName = path.basename(BUILD_DIR)
|
|
416
428
|
}
|
|
417
429
|
for (let i = 0, len = moduleList.length; i < len; i++) {
|
|
418
430
|
const fileConf = moduleList[i].path
|
package/lib/commands/compile.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var _ziputil=require("@aiot-toolkit/packager/lib/common/ziputil"),_config=_interopRequireDefault(require("@aiot-toolkit/shared-utils/config"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const webpack=require("webpack"),{setCustomConfig:setCustomConfig,colorconsole:colorconsole,getProjectJson:getProjectJson,getManifest:getManifest}=require("@aiot-toolkit/shared-utils"),genWebpackConf=require("../../gen-webpack-conf"),{summaryErrors:summaryErrors,summaryWarnings:summaryWarnings,getAspectEntries:getAspectEntries,cleanOrCreateDir:cleanOrCreateDir,copyFiles:copyFiles}=require("./utils"),{validateConfigJson:validateConfigJson}=require("../../gen-webpack-conf/validate"),path=require("path"),fs=require("fs");let appName,watching=null;function showVersion(){const e=require("../../package.json").version,t=require("@babel/core/package.json").version,o=require("webpack/package.json").version;colorconsole.info(`aiot-toolkit: ${e}; babel: ${t}; webpack: ${o};`)}async function aspectProjectCompiler(e,t,o,
|
|
1
|
+
"use strict";var _ziputil=require("@aiot-toolkit/packager/lib/common/ziputil"),_config=_interopRequireDefault(require("@aiot-toolkit/shared-utils/config"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const webpack=require("webpack"),{setCustomConfig:setCustomConfig,colorconsole:colorconsole,getProjectJson:getProjectJson,getManifest:getManifest,readJson:readJson}=require("@aiot-toolkit/shared-utils"),genWebpackConf=require("../../gen-webpack-conf"),{summaryErrors:summaryErrors,summaryWarnings:summaryWarnings,getAspectEntries:getAspectEntries,cleanOrCreateDir:cleanOrCreateDir,copyFiles:copyFiles,getProductionTypes:getProductionTypes,isMirtosDevice:isMirtosDevice}=require("./utils"),{validateConfigJson:validateConfigJson}=require("../../gen-webpack-conf/validate"),path=require("path"),fs=require("fs");let appName,watching=null;function showVersion(){const e=require("../../package.json").version,t=require("@babel/core/package.json").version,o=require("webpack/package.json").version;colorconsole.info(`aiot-toolkit: ${e}; babel: ${t}; webpack: ${o};`)}async function aspectProjectCompiler(e,t,o,a={}){let r=getManifest();appName=r.package||"demo";const{entries:i,deviceAspects:s,routerObj:c}=getAspectEntries(_config.default.aspectTemplate.projectPath,r);validateConfigJson(i);const n=_config.default.aspectTemplate.distPath,p=_config.default.aspectTemplate.outputPath;cleanOrCreateDir(p),cleanOrCreateDir(n),_config.default.aspectTemplate.outputPath=path.join(p,appName);const l=_config.default.aspectTemplate.outputPath,u=path.dirname(l),f=[];try{for(let r of i){_config.default.sourceRoot="./src",_config.default.aspectTemplate.isApp=!1,a.cwd=path.join(_config.default.aspectTemplate.projectPath,r),_config.default.aspectTemplate.packToVela=!1;let i=path.resolve(a.cwd,_config.default.sourceRoot,"manifest.json");if(!fs.existsSync(i))throw new Error(`the file ${i} cannot be found.`);const s=readJson(i),{deviceTypeList:c}=s;if(c&&Array.isArray(c)){const i=getProductionTypes(c);for(const s of Object.keys(i))if(i[s]){_config.default.aspectTemplate.packToVela="enableMirtos"===s;const i=_config.default.aspectTemplate.packToVela?r+".lite":r;f.push(i),await singleCompiler(e,t,o,a)}}else f.push(r),await singleCompiler(e,t,o,a)}c.all=r.router.aspects,s.all=f;const p=path.join(_config.default.aspectTemplate.projectPath,"app"),g=path.join(p,"manifest.json");let m=JSON.parse(JSON.stringify(r));const{deviceTypeList:d}=r,h=getProductionTypes(d),w=path.join(p,".manifest.json");fs.writeFileSync(w,JSON.stringify(r));for(let r of Object.keys(s)){const i=isMirtosDevice(r);let d="all"===r,w=d?appName:appName+"."+r.trim().replace(" ",".");if(m.router.aspects=c[r],fs.writeFileSync(g,JSON.stringify(m,null,2)),_config.default.sourceRoot="",_config.default.aspectTemplate.isApp=!0,a.cwd=p,d){for(const r of Object.keys(h))if(h[r]){_config.default.aspectTemplate.packToVela="enableMirtos"===r;const i=_config.default.aspectTemplate.packToVela?"app.lite":"app";f.push(i),await singleCompiler(e,t,o,a)}}else _config.default.aspectTemplate.packToVela=i,await singleCompiler(e,t,o,a);let T=[];if(d)for(const e of s[r]){const t="app"===e||"app.lite"===e?e+".base":e+".aspc";T.push({name:e,targetFile:t,otherName:t})}else s[r].unshift("app"),T=s[r].map((e=>{let t=i?`${e}.lite`:e;const o=path.join(l,t),a=path.join(u,w,e);return copyFiles(o,a),{name:e,targetFile:"app"===e?t+".base":t+".aspc",otherName:"app"===e?e+".base":e+".aspc"}}));const y=path.join(n,w+".app");d?await(0,_ziputil.packFolderToApp)(y,T,l,!0):await(0,_ziputil.packFolderToApp)(y,T,l)}return fs.unlinkSync(w),Promise.resolve()}catch(e){console.log(`Distributed project compiler error ${e}`)}}function singleCompiler(e,t,o,a={}){const r=a.onerror;return new Promise(((i,s)=>{function c(e,t){if(e&&(r&&r(e),colorconsole.error(e)),t){if(t.hasErrors()||t.hasWarnings()){const e=summaryErrors(t),o=summaryWarnings(t);r&&r(e),colorconsole.error(e),colorconsole.warn(o)}t.hasErrors()&&(process.exitCode=1)}}colorconsole.attach(a.log),setCustomConfig(a.cwd),process.env.NODE_PLATFORM=e,process.env.NODE_PHASE=t;const n="prod"===t?"production":"development";try{const e=genWebpackConf(a,n);if(o){const t=webpack(e);watching=t.watch({aggregateTimeout:300},((e,t)=>{c(e,t),i({compileError:e,stats:t,watching:watching})}))}else webpack(e,((e,t)=>{c(e,t),i({compileError:e,stats:t})}))}catch(e){console.log(`singleCompiler error ${e}`)}}))}showVersion(),module.exports.compile=async function(e,t,o,a={}){var r;let i;return"distributed"===(null===(r=getProjectJson())||void 0===r?void 0:r.projectType)?(_config.default.aspectTemplate.isAspect=!0,i=await aspectProjectCompiler(e,t,o,a)):i=await singleCompiler(e,t,o,a),i},module.exports.stopWatch=function(){return new Promise((e=>{watching?watching.close((()=>{watching=null,e({stopWatchError:null})})):e({stopWatchError:"no watching"})}))};
|
|
2
2
|
//# sourceMappingURL=compile.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var _path=_interopRequireDefault(require("path")),_fsExtra=_interopRequireDefault(require("fs-extra")),_init=require("../../lib/commands/init"),_template=_interopRequireDefault(require("@aiot-toolkit/dsl-xvm/lib/template")),_sharedUtils=require("@aiot-toolkit/shared-utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function validateProjectPath(e,t){const a=_path.default.join(e,t);if(!_fsExtra.default.existsSync(a))throw new Error(`Path: ${a} is not exist!`);return a}function readName(e){const t=_path.default.join(e,"src","manifest.json"),a=_fsExtra.default.readJsonSync(t,{encoding:"utf-8"});if(a.name&&a.package)return{projectName:a.name,projectPackageName:a.package};throw new Error("The name and package name fields do not exist in the manifest.json!")}async function transformToNewProject(e){e=validateProjectPath(process.cwd(),e);const t=_path.default.join(_path.default.dirname(e),`xapp-${_path.default.basename(e)}`),{projectName:a,projectPackageName:r}=readName(e);await createNewXappProject(_template.default.app.xappMultiScreenTemplate,t),renderFilesData(t,a,r);const o=_path.default.join(e,"src"),n=_path.default.join(t,"main","src");await(0,_init.copyFiles)(n,o,{"app.ux":"aspect.ux"}),_sharedUtils.colorconsole.info(`transform success! new project path is ${t}`)}async function createNewXappProject(e,t){if(_fsExtra.default.existsSync(t))throw new Error(`Create error: Folfer ${_path.default.basename(t)} already exists in path ${_path.default.dirname(t)}`);_fsExtra.default.mkdirSync(t),await(0,_init.copyFiles)(t,e,{_gitignore:".gitignore"})}function renderFilesData(e,t,a){const r={appName:t,packageName:a,toolkitVersion:require("../../package.json").version};["package.json","app/manifest.json",".project.json","README.md"].map((t=>_path.default.join(e,t))).forEach((e=>{let t=_fsExtra.default.readFileSync(e,"utf-8");t=(0,_sharedUtils.renderString)(t,r),_fsExtra.default.writeFileSync(e,t)}))}async function projectToAspect(e){const t=e.import,a=process.cwd(),r=validateProjectPath(a,t),{projectPackageName:
|
|
1
|
+
"use strict";var _path=_interopRequireDefault(require("path")),_fsExtra=_interopRequireDefault(require("fs-extra")),_init=require("../../lib/commands/init"),_template=_interopRequireDefault(require("@aiot-toolkit/dsl-xvm/lib/template")),_sharedUtils=require("@aiot-toolkit/shared-utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function validateProjectPath(e,t){const a=_path.default.join(e,t);if(!_fsExtra.default.existsSync(a))throw new Error(`Path: ${a} is not exist!`);return a}function readName(e){const t=_path.default.join(e,"src","manifest.json"),a=_fsExtra.default.readJsonSync(t,{encoding:"utf-8"});if(a.name&&a.package)return{projectName:a.name,projectPackageName:a.package};throw new Error("The name and package name fields do not exist in the manifest.json!")}async function transformToNewProject(e){e=validateProjectPath(process.cwd(),e);const t=_path.default.join(_path.default.dirname(e),`xapp-${_path.default.basename(e)}`),{projectName:a,projectPackageName:r}=readName(e);await createNewXappProject(_template.default.app.xappMultiScreenTemplate,t),renderFilesData(t,a,r);const o=_path.default.join(e,"src"),n=_path.default.join(t,"main","src");await(0,_init.copyFiles)(n,o,{"app.ux":"aspect.ux"}),_sharedUtils.colorconsole.info(`transform success! new project path is ${t}`)}async function createNewXappProject(e,t){if(_fsExtra.default.existsSync(t))throw new Error(`Create error: Folfer ${_path.default.basename(t)} already exists in path ${_path.default.dirname(t)}`);_fsExtra.default.mkdirSync(t),await(0,_init.copyFiles)(t,e,{_gitignore:".gitignore"})}function renderFilesData(e,t,a){const r={appName:t,packageName:a,toolkitVersion:require("../../package.json").version,dirName:_path.default.basename(e)};["package.json","app/manifest.json",".project.json","README.md"].map((t=>_path.default.join(e,t))).forEach((e=>{let t=_fsExtra.default.readFileSync(e,"utf-8");t=(0,_sharedUtils.renderString)(t,r),_fsExtra.default.writeFileSync(e,t)}))}async function projectToAspect(e){const t=e.import,a=process.cwd(),r=validateProjectPath(a,t),{projectName:o,projectPackageName:n}=readName(r),i=_path.default.join(a,n);await createNewXappProject(_template.default.app.xappAspect,i);const s={appName:o},c=_path.default.join(i,"config.json");let p=_fsExtra.default.readFileSync(c,"utf-8");p=(0,_sharedUtils.renderString)(p,s),_fsExtra.default.writeFileSync(c,p);const f=_path.default.join(r,"src"),l=_path.default.join(i,"src");_fsExtra.default.emptyDirSync(l),await(0,_init.copyFiles)(l,f,{"app.ux":"aspect.ux"}),updateAppManifest(a,n),_sharedUtils.colorconsole.info(`import success! new aspect name is ${n}`)}function updateAppManifest(e,t){const a=_path.default.join(e,"app","manifest.json"),r=_fsExtra.default.readJSONSync(a,{encoding:"utf-8"}),o={path:`${t}`,devices:["watch"],autoStart:!0};if(!(r&&r.router&&r.router.aspects&&r.router.aspects instanceof Object))throw new Error("router.aspects does not exist or is in the wrong format");r.router.aspects[`${t}`]=[o],_fsExtra.default.writeJSONSync(a,r,{spaces:2})}module.exports.transformProject=async function(e,t){try{t&&t.import?await projectToAspect(t):e?await transformToNewProject(e):_sharedUtils.colorconsole.log("transform stop: No valid information entered!")}catch(e){throw new Error(`transform failed! ${e}`)}};
|
|
2
2
|
//# sourceMappingURL=transform.js.map
|
package/lib/commands/utils.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.formatDate=formatDate,exports.summaryErrors=summaryErrors,exports.summaryWarnings=summaryWarnings,exports.getQuickappDebuggerUrl=getQuickappDebuggerUrl,exports.getQuickappPreviewUrl=getQuickappPreviewUrl,exports.downloadFile=downloadFile,exports.sendReq=sendReq,exports.getClients=getClients,exports.checkQuickappDir=checkQuickappDir,exports.getCardContent=getCardContent,exports.cleanOrCreateDir=cleanOrCreateDir,exports.getAspectEntries=getAspectEntries,exports.copyFiles=copyFiles;var _fsExtra=_interopRequireDefault(require("fs-extra")),_path=_interopRequireDefault(require("path")),_request=_interopRequireDefault(require("request")),_http=_interopRequireDefault(require("http")),_recordClient=require("@aiot-toolkit/shared-utils/lib/record-client"),_config=require("@aiot-toolkit/shared-utils/config"),_sharedUtils=require("@aiot-toolkit/shared-utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach((function(t){_defineProperty(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function _defineProperty(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}const fsExtra=require("fs-extra");function formatDate(e,t){let r,o,s,n,i,a,c=e;return(e.indexOf("yyyy")>=0||e.indexOf("YYYYY")>=0)&&(r=t.getFullYear(),c=c.replace(/[yY]{4}/g,r)),e.indexOf("MM")>=0&&(o=t.getMonth()+1,c=c.replace(/MM/g,String(o).length<2?"0"+o:o)),e.indexOf("dd")>=0&&(s=t.getDate(),c=c.replace(/dd/g,String(s).length<2?"0"+s:s)),(e.indexOf("hh")>=0||e.indexOf("HH")>=0)&&(n=t.getHours(),c=c.replace(/[hH]{2}/g,String(n).length<2?"0"+n:n)),e.indexOf("mm")>=0&&(i=t.getMinutes(),c=c.replace(/mm/g,String(i).length<2?"0"+i:i)),(e.indexOf("ss")>=0||e.indexOf("SS")>=0)&&(a=t.getSeconds(),c=c.replace(/[sS]{2}/g,String(a).length<2?"0"+a:a)),c}function summaryErrors(e){const t=[];return e.compilation.errors.forEach((e=>{const r=e.message,o=/Can't resolve '(sass-loader|less-loader|stylus-loader)'/.exec(r);if("ModuleNotFoundError"===e.name&&o){let t=o[1];"less-loader"===t?t=`less ${t}`:"sass-loader"===t?t=`node-sass ${t}`:"stylus-loader"===t&&(t=`stylus ${t}`),e.message=` Missing dependency: ${t}, Please execute npm install -D ${t} to install the corresponding dependencies `}const s=e.module?e.module.resource:"";t.push(`${s}\r\n${e.message}`)})),t.join("\n\n")}function summaryWarnings(e){return e.compilation.warnings.map((e=>e.message)).join("\n\n")}const quickapp_url="https://statres.quickapp.cn/quickapp/quickapptool/release/platform/";function getQuickappDebuggerUrl(e){let t=e||"v1080";return _sharedUtils.colorconsole.log(`The version of the Quickapp debugger that started to download is: ${t}`),`${quickapp_url}quickapp_debugger_${t}.apk`}function getQuickappPreviewUrl(e){let t=e||"v1080";return _sharedUtils.colorconsole.log(`The version of the Quickapp debugger that started to download is: ${t}`),`${quickapp_url}quickapp_platform_preview_release_${t}.apk`}function downloadFile(e,t){return _sharedUtils.colorconsole.log(`Start downloading file:${t}, address:${e}`),new Promise((function(r,o){(0,_request.default)(e,(function(s,n,i){if(s||200!==n.statusCode)o(s||new Error(`Download failed, status code:${n.statusCode}`));else{const s=_path.default.join(__dirname,"./apk");_fsExtra.default.ensureDirSync(s);let n=_fsExtra.default.createWriteStream(_path.default.join(s,t));(0,_request.default)(e).pipe(n).on("close",(e=>{e?o(e):r(`Download file ${t} successfully`)}))}}))}))}async function sendReq(e,t,r){return new Promise((o=>{const s=`http://${e.ip}:${e.port}${t}`;let n={host:e.ip,port:e.port,path:t,timeout:3e3};r&&(n=Object.assign({},n,{headers:r}));const i=_http.default.request(n,(e=>{e.on("data",(e=>{_sharedUtils.colorconsole.log(`### App Server ### Request ${s} succeeded`),o(e.toString())}))})).on("error",(e=>{_sharedUtils.colorconsole.error(`### App Server ### Request ${s} error message: ${e.message}`)})).on("timeout",(function(){_sharedUtils.colorconsole.log(`### App Server ### Request ${s} timed out, please try again`),i.abort()}));i.end()}))}async function getClients(){return new Promise((e=>{if(_fsExtra.default.existsSync(_config.clientRecordPath)){const t=(0,_recordClient.getRecords)(_config.clientRecordPath),r=(0,_recordClient.getProjectClients)(t);r.length>0&&e(r)}e(null)}))}function checkQuickappDir(e,t="src"){const r=_path.default.join(e,t,"manifest.json");_fsExtra.default.existsSync(r)||(_sharedUtils.colorconsole.error("Please execute this command under the Quickapp project"),process.exit())}function getCardContent(e){const t=_path.default.join(e,"src","manifest.json"),r=(0,_sharedUtils.readJson)(t).router.widgets||null;return r||_sharedUtils.colorconsole.error("No card configuration in manifest.json"),r}function cleanOrCreateDir(e){try{_fsExtra.default.accessSync(e,_fsExtra.default.constants.F_OK),fsExtra.emptyDirSync(e)}catch(t){_fsExtra.default.mkdirSync(e,{recursive:!0})}}function getAspectEntries(e,t){let r=[],o={},s={},n=_fsExtra.default.readdirSync(e,{encoding:"utf8"});const i=_path.default.join(e,"app","manifest.json"),a=t.router.aspects||null,c=Object.keys(a);return t.router||_sharedUtils.colorconsole.error(`Configuration file ${i} error: router is not exsist, please check`),a||_sharedUtils.colorconsole.error(`Configuration file ${i} error: router.aspect is not exist, please check`),c.forEach((e=>{const t=a[e];let c=[];t.forEach((t=>{n.includes(t.path)&&!r.includes(t.path)?r.push(t.path):_sharedUtils.colorconsole.throw(`Configuration file ${i} error: ${t.path} is not exist in root directory`);let a=t.devices?t.devices:["phone"];for(let r=0;r<a.length;r++){let n=[a[r],t.rule?t.rule:""].join(" ");c.includes(n)?_sharedUtils.colorconsole.throw(`Configuration file ${i} error, devices or devices rule: ${n} is repeat in router ${e}`):c.push(n),s[n]=_objectSpread(_objectSpread({},s[n]),{},{[e]:t}),Object.keys(o).includes(n)?o[n].push(t.path):o[n]=[t.path]}}))})),{entries:r,deviceAspects:o,routerObj:s}}function copyFiles(e,t){_fsExtra.default.existsSync(t)||_fsExtra.default.mkdirSync(t,{recursive:!0});_fsExtra.default.readdirSync(e).forEach((r=>{const o=_path.default.join(e,r),s=_path.default.join(t,r);_fsExtra.default.statSync(o).isDirectory()?copyFiles(o,s):_fsExtra.default.copyFileSync(o,s)}))}
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.formatDate=formatDate,exports.summaryErrors=summaryErrors,exports.summaryWarnings=summaryWarnings,exports.getQuickappDebuggerUrl=getQuickappDebuggerUrl,exports.getQuickappPreviewUrl=getQuickappPreviewUrl,exports.downloadFile=downloadFile,exports.sendReq=sendReq,exports.getClients=getClients,exports.checkQuickappDir=checkQuickappDir,exports.getCardContent=getCardContent,exports.cleanOrCreateDir=cleanOrCreateDir,exports.getAspectEntries=getAspectEntries,exports.copyFiles=copyFiles,exports.getProductionTypes=getProductionTypes,exports.isMirtosDevice=isMirtosDevice;var _fsExtra=_interopRequireDefault(require("fs-extra")),_path=_interopRequireDefault(require("path")),_request=_interopRequireDefault(require("request")),_http=_interopRequireDefault(require("http")),_recordClient=require("@aiot-toolkit/shared-utils/lib/record-client"),_config=require("@aiot-toolkit/shared-utils/config"),_sharedUtils=require("@aiot-toolkit/shared-utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach((function(t){_defineProperty(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function _defineProperty(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}const fsExtra=require("fs-extra");function formatDate(e,t){let r,o,s,n,i,a,c=e;return(e.indexOf("yyyy")>=0||e.indexOf("YYYYY")>=0)&&(r=t.getFullYear(),c=c.replace(/[yY]{4}/g,r)),e.indexOf("MM")>=0&&(o=t.getMonth()+1,c=c.replace(/MM/g,String(o).length<2?"0"+o:o)),e.indexOf("dd")>=0&&(s=t.getDate(),c=c.replace(/dd/g,String(s).length<2?"0"+s:s)),(e.indexOf("hh")>=0||e.indexOf("HH")>=0)&&(n=t.getHours(),c=c.replace(/[hH]{2}/g,String(n).length<2?"0"+n:n)),e.indexOf("mm")>=0&&(i=t.getMinutes(),c=c.replace(/mm/g,String(i).length<2?"0"+i:i)),(e.indexOf("ss")>=0||e.indexOf("SS")>=0)&&(a=t.getSeconds(),c=c.replace(/[sS]{2}/g,String(a).length<2?"0"+a:a)),c}function summaryErrors(e){const t=[];return e.compilation.errors.forEach((e=>{const r=e.message,o=/Can't resolve '(sass-loader|less-loader|stylus-loader)'/.exec(r);if("ModuleNotFoundError"===e.name&&o){let t=o[1];"less-loader"===t?t=`less ${t}`:"sass-loader"===t?t=`node-sass ${t}`:"stylus-loader"===t&&(t=`stylus ${t}`),e.message=` Missing dependency: ${t}, Please execute npm install -D ${t} to install the corresponding dependencies `}const s=e.module?e.module.resource:"";t.push(`${s}\r\n${e.message}`)})),t.join("\n\n")}function summaryWarnings(e){return e.compilation.warnings.map((e=>e.message)).join("\n\n")}const quickapp_url="https://statres.quickapp.cn/quickapp/quickapptool/release/platform/";function getQuickappDebuggerUrl(e){let t=e||"v1080";return _sharedUtils.colorconsole.log(`The version of the Quickapp debugger that started to download is: ${t}`),`${quickapp_url}quickapp_debugger_${t}.apk`}function getQuickappPreviewUrl(e){let t=e||"v1080";return _sharedUtils.colorconsole.log(`The version of the Quickapp debugger that started to download is: ${t}`),`${quickapp_url}quickapp_platform_preview_release_${t}.apk`}function downloadFile(e,t){return _sharedUtils.colorconsole.log(`Start downloading file:${t}, address:${e}`),new Promise((function(r,o){(0,_request.default)(e,(function(s,n,i){if(s||200!==n.statusCode)o(s||new Error(`Download failed, status code:${n.statusCode}`));else{const s=_path.default.join(__dirname,"./apk");_fsExtra.default.ensureDirSync(s);let n=_fsExtra.default.createWriteStream(_path.default.join(s,t));(0,_request.default)(e).pipe(n).on("close",(e=>{e?o(e):r(`Download file ${t} successfully`)}))}}))}))}async function sendReq(e,t,r){return new Promise((o=>{const s=`http://${e.ip}:${e.port}${t}`;let n={host:e.ip,port:e.port,path:t,timeout:3e3};r&&(n=Object.assign({},n,{headers:r}));const i=_http.default.request(n,(e=>{e.on("data",(e=>{_sharedUtils.colorconsole.log(`### App Server ### Request ${s} succeeded`),o(e.toString())}))})).on("error",(e=>{_sharedUtils.colorconsole.error(`### App Server ### Request ${s} error message: ${e.message}`)})).on("timeout",(function(){_sharedUtils.colorconsole.log(`### App Server ### Request ${s} timed out, please try again`),i.abort()}));i.end()}))}async function getClients(){return new Promise((e=>{if(_fsExtra.default.existsSync(_config.clientRecordPath)){const t=(0,_recordClient.getRecords)(_config.clientRecordPath),r=(0,_recordClient.getProjectClients)(t);r.length>0&&e(r)}e(null)}))}function checkQuickappDir(e,t="src"){const r=_path.default.join(e,t,"manifest.json");_fsExtra.default.existsSync(r)||(_sharedUtils.colorconsole.error("Please execute this command under the Quickapp project"),process.exit())}function getCardContent(e){const t=_path.default.join(e,"src","manifest.json"),r=(0,_sharedUtils.readJson)(t).router.widgets||null;return r||_sharedUtils.colorconsole.error("No card configuration in manifest.json"),r}function cleanOrCreateDir(e){try{_fsExtra.default.accessSync(e,_fsExtra.default.constants.F_OK),fsExtra.emptyDirSync(e)}catch(t){_fsExtra.default.mkdirSync(e,{recursive:!0})}}function getAspectEntries(e,t){let r=[],o={},s={},n=_fsExtra.default.readdirSync(e,{encoding:"utf8"});const i=_path.default.join(e,"app","manifest.json"),a=t.router.aspects||null,c=Object.keys(a);return t.router||_sharedUtils.colorconsole.error(`Configuration file ${i} error: router is not exsist, please check`),a||_sharedUtils.colorconsole.error(`Configuration file ${i} error: router.aspect is not exist, please check`),c.forEach((e=>{const t=a[e];let c=[];t.forEach((t=>{n.includes(t.path)&&!r.includes(t.path)?r.push(t.path):_sharedUtils.colorconsole.throw(`Configuration file ${i} error: ${t.path} is not exist in root directory`);let a=t.devices?t.devices:["phone"];for(let r=0;r<a.length;r++){let n=[a[r],t.rule?t.rule:""].join(" ");c.includes(n)?_sharedUtils.colorconsole.throw(`Configuration file ${i} error, devices or devices rule: ${n} is repeat in router ${e}`):c.push(n),s[n]=_objectSpread(_objectSpread({},s[n]),{},{[e]:t}),Object.keys(o).includes(n)?o[n].push(t.path):o[n]=[t.path]}}))})),{entries:r,deviceAspects:o,routerObj:s}}function copyFiles(e,t){_fsExtra.default.existsSync(e)||_sharedUtils.colorconsole.throw(`Resource copy error, the path ${e} not exist.`),_fsExtra.default.existsSync(t)||_fsExtra.default.mkdirSync(t,{recursive:!0});_fsExtra.default.readdirSync(e).forEach((r=>{const o=_path.default.join(e,r),s=_path.default.join(t,r);_fsExtra.default.statSync(o).isDirectory()?copyFiles(o,s):_fsExtra.default.copyFileSync(o,s)}))}const mirtosDeviceConfig=["watch"],androidDeviceConfig=[""];function getProductionTypes(e){const t={enableMirtos:!1,enableAndroid:!1};return 0===e.length?t.enableAndroid=!0:e.map((e=>{mirtosDeviceConfig.indexOf(e)>-1?t.enableMirtos=!0:t.enableAndroid=!0})),t}function isMirtosDevice(e){return mirtosDeviceConfig.some((t=>e.includes(t)))}
|
|
2
2
|
//# sourceMappingURL=utils.js.map
|
package/package.json
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "aiot-toolkit",
|
|
3
|
-
"version": "1.0.18-aspect-beta.
|
|
3
|
+
"version": "1.0.18-aspect-beta.19",
|
|
4
4
|
"description": "A command line toolkit for developing Aiot Quick Apps.",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=8.0.0"
|
|
7
7
|
},
|
|
8
8
|
"dependencies": {
|
|
9
|
-
"@aiot-toolkit/compiler": "1.0.18-aspect-beta.
|
|
10
|
-
"@aiot-toolkit/debugger": "1.0.18-aspect-beta.
|
|
11
|
-
"@aiot-toolkit/dsl-vue": "1.0.18-aspect-beta.
|
|
12
|
-
"@aiot-toolkit/dsl-xvm": "1.0.18-aspect-beta.
|
|
13
|
-
"@aiot-toolkit/packager": "1.0.18-aspect-beta.
|
|
14
|
-
"@aiot-toolkit/server": "1.0.18-aspect-beta.
|
|
15
|
-
"@aiot-toolkit/shared-utils": "1.0.18-aspect-beta.
|
|
9
|
+
"@aiot-toolkit/compiler": "1.0.18-aspect-beta.19",
|
|
10
|
+
"@aiot-toolkit/debugger": "1.0.18-aspect-beta.19",
|
|
11
|
+
"@aiot-toolkit/dsl-vue": "1.0.18-aspect-beta.19",
|
|
12
|
+
"@aiot-toolkit/dsl-xvm": "1.0.18-aspect-beta.19",
|
|
13
|
+
"@aiot-toolkit/packager": "1.0.18-aspect-beta.19",
|
|
14
|
+
"@aiot-toolkit/server": "1.0.18-aspect-beta.19",
|
|
15
|
+
"@aiot-toolkit/shared-utils": "1.0.18-aspect-beta.19",
|
|
16
16
|
"@babel/core": "^7.9.6",
|
|
17
17
|
"@babel/plugin-syntax-jsx": "^7.8.3",
|
|
18
18
|
"@babel/preset-env": "^7.9.6",
|
|
@@ -51,5 +51,5 @@
|
|
|
51
51
|
"supertest": "^3.3.0",
|
|
52
52
|
"webpack-cli": "^4.3.0"
|
|
53
53
|
},
|
|
54
|
-
"gitHead": "
|
|
54
|
+
"gitHead": "65f63a57e633a08ecbb44fff3a249aebf83926c9"
|
|
55
55
|
}
|