UNPKG

chameleon-tool

Version:

chameleon 脚手架工具

46 lines (38 loc) 1.48 kB
exports.getExportFileName = function(resourcePath, options) { if (/node_modules\/(chameleon-ui|chameleon-ui-builtin)/.test(resourcePath)) { let result = resourcePath.replace(/(.+?)(chameleon-ui|chameleon-ui-builtin)(.+)/, "$2$3"); result = result.replace(/(\.(web|weex))?\.cml$/, '.vue'); result = result.replace(/\.interface$/, `.interface.js`); return result + '?__export'; } let { context, entry} = options; let entryKeys = Object.keys(entry); resourcePath = resourcePath.replace(context + '/', ''); let minDepth = 1000; let minFilePath = []; for (let i = 0, l = entryKeys.length; i < l; i++) { let { currentDepth, minPath } = getFileDepth(entry[entryKeys[i]].replace(context + '/', '').split(entryKeys[i])[0], resourcePath.replace(context + '/', '')); if (currentDepth < minDepth) { minFilePath = minPath; minDepth = currentDepth; } } let result = minFilePath.join('/'); result = result.replace(/(\.(web|weex))?\.cml$/, '.vue'); result = result.replace(/\.interface$/, `.interface.js`); return result + '?__export'; } function getFileDepth(entryPath, filePath) { let entryPaths = entryPath.split('/'); let filePaths = filePath.split('/'); for (let i = 0, l = filePaths.length; i < l; i++) { if (filePaths[i] === entryPaths[i]) { filePaths[i] = ''; } } filePaths = filePaths.filter(item => item !== ''); return { currentDepth: filePaths.length, minPath: filePaths }; }