对于一个日渐宏大的下uni-app我的项目,pages.json文件会变得有大有难以保护,所有就思考怎么样将pages.json文件才分易保护的小文件。
起初在浏览他的源码时发现了这个

const pagesJsonJsFileName = 'pages.js'function processPagesJson (pagesJson, loader = {  addDependency: function () {}}) {  const pagesJsonJsPath = path.resolve(process.env.UNI_INPUT_DIR, pagesJsonJsFileName)  if (fs.existsSync(pagesJsonJsPath)) {    delete require.cache[pagesJsonJsPath]    const pagesJsonJsFn = require(pagesJsonJsPath)    if (typeof pagesJsonJsFn === 'function') {      pagesJson = pagesJsonJsFn(pagesJson, loader)      if (!pagesJson) {        console.error(`${pagesJsonJsFileName}  ${uniI18n.__('cliShared.requireReturnJsonObject')}`)      }    } else {      console.error(`${pagesJsonJsFileName} ${uniI18n.__('cliShared.requireExportFunction')}`)    }  }  // 将 subpackages 转换成 subPackages  if (pagesJson.subpackages && !pagesJson.subPackages) {    pagesJson.subPackages = pagesJson.subpackages    delete pagesJson.subpackages  }  let uniNVueEntryPagePath  if (pagesJson.pages && pagesJson.pages.length) { // 如果首页是 nvue    if (isNVuePage(pagesJson.pages[0])) {      uniNVueEntryPagePath = pagesJson.pages[0].path    }  }  // pages  filterPages(pagesJson.pages)  // subPackages  if (Array.isArray(pagesJson.subPackages) && pagesJson.subPackages.length) {    pagesJson.subPackages.forEach(subPackage => {      filterPages(subPackage.pages, subPackage.root)    })  }  if (uniNVuePages.length) { // 间接挂在 pagesJson 上    pagesJson.nvue = {      pages: uniNVuePages.reverse()    }    if (uniNVueEntryPagePath) {      pagesJson.nvue.entryPagePath = uniNVueEntryPagePath    }  }  return pagesJson}

于是就有上面这个工具
仓库地址
uni-module-pages