packages/okam-build/lib/processor/helper/component.js
function getPageOriginFileExtnames(pageFileNotExt, buildManager) {
    let {files: allFiles, appType, buildConf, componentExtname} = buildManager;

    // handle native file
    let compFilesInfo = getCompFilesInfoByAppType(pageFileNotExt, {
        appType,
        wx2swan: buildConf.wx2swan,
        componentExtname,
        compileContext: buildManager.compileContext
    });

    let filesMap = {};
    let {componentType, missingMustFileExtnames, fileExtnameMap} = compFilesInfo;

    Object.keys(fileExtnameMap || {}).forEach(k => {
        let pageFile = allFiles.getByFullPath(fileExtnameMap[k]);
        if (!pageFile) {
            return;
        }
        filesMap[k] = pageFile;
    });

    // all must have js script except quick
    let scriptFile = filesMap.js;
    if (componentType && scriptFile) {
        scriptFile[componentType] = true;
    }

    let jsonFile = filesMap.json;
    if (jsonFile) {
        jsonFile.isComponentConfig = true;
        jsonFile.component = scriptFile;
    }

    return {
        missingMustFileExtnames,
        filesMap
    };
}
function getPageOriginFileExtnames(pageFileNotExt, buildManager) {
    let {files: allFiles, appType, buildConf, componentExtname} = buildManager;

    // handle native file
    let compFilesInfo = getCompFilesInfoByAppType(pageFileNotExt, {
        appType,
        wx2swan: buildConf.wx2swan,
        componentExtname,
        compileContext: buildManager.compileContext
    });

    let filesMap = {};
    let {componentType, missingMustFileExtnames, fileExtnameMap} = compFilesInfo;

    Object.keys(fileExtnameMap || {}).forEach(k => {
        let pageFile = allFiles.getByFullPath(fileExtnameMap[k]);
        if (!pageFile) {
            return;
        }
        filesMap[k] = pageFile;
    });

    // all must have js script except quick
    let scriptFile = filesMap.js;
    if (componentType && scriptFile) {
        scriptFile[componentType] = true;
    }

    let jsonFile = filesMap.json;
    if (jsonFile) {
        jsonFile.isComponentConfig = true;
        jsonFile.component = scriptFile;
    }

    return {
        missingMustFileExtnames,
        filesMap
    };
}
根据类型 获取页面原生文件后缀名，以及相应的错误提示

@param  {string} pageFileNotExt  page file no extname
@param  {Object} buildManager      build
@return {Object}                {missingMustFileExtnames, filesMap}
{
// 对应原生缺失的必要文件的后缀名
missingMustFileExtnames,
// 后缀名: 文件对象 {extname: fileObject}
filesMap
}