@tarojs/cli
Version:
cli tool for taro
78 lines (71 loc) • 2.44 kB
JavaScript
const path = require('path')
function createWhenTs (err, params) {
return !!params.typescript
}
function normalizePath (path) {
return path.replace(/\\/g, '/').replace(/\/{2,}/g, '/')
}
const SOURCE_ENTRY = '/src'
const PAGES_ENTRY = '/src/pages'
const handler = {
'/tsconfig.json': createWhenTs,
'/types/global.d.ts': createWhenTs,
'/types/vue.d.ts' (err, { framework, typescript }) {
return ['Vue3'].includes(framework) && !!typescript
},
'/types/solid.d.ts' (err, { framework, typescript }) {
return ['Solid'].includes(framework) && !!typescript
},
'/src/pages/index/index.jsx' (err, { pageDir = '', pageName = '', subPkg = '' }) {
return {
setPageName: normalizePath(path.join(PAGES_ENTRY, pageDir, pageName, 'index.jsx')),
setSubPkgName: normalizePath(path.join(SOURCE_ENTRY, subPkg, pageDir, pageName, 'index.jsx'))
}
},
'/src/pages/index/index.css' (err, { pageDir = '', pageName = '', subPkg = '' }) {
return {
setPageName: normalizePath(path.join(PAGES_ENTRY, pageDir, pageName, 'index.css')),
setSubPkgName: normalizePath(path.join(SOURCE_ENTRY, subPkg, pageDir, pageName, 'index.css'))
}
},
'/src/pages/index/index.vue' (err, { pageDir = '', pageName = '', subPkg = '' }) {
return {
setPageName: normalizePath(path.join(PAGES_ENTRY, pageDir, pageName, 'index.vue')),
setSubPkgName: normalizePath(path.join(SOURCE_ENTRY, subPkg, pageDir, pageName, 'index.vue'))
}
},
'/src/pages/index/index.config.js' (err, { pageDir = '', pageName = '', subPkg = '' }) {
return {
setPageName: normalizePath(path.join(PAGES_ENTRY, pageDir, pageName, 'index.config.js')),
setSubPkgName: normalizePath(path.join(SOURCE_ENTRY, subPkg, pageDir, pageName, 'index.config.js'))
}
},
'/_editorconfig' () {
return { setPageName: `/.editorconfig` }
},
'/_env.development' () {
return { setPageName: `/.env.development` }
},
'/_env.production' () {
return { setPageName: `/.env.production` }
},
'/_env.test' () {
return { setPageName: `/.env.test` }
},
'/_eslintrc' () {
return { setPageName: `/.eslintrc` }
},
'/_gitignore' () {
return { setPageName: `/.gitignore` }
}
}
const basePageFiles = [
'/src/pages/index/index.jsx',
'/src/pages/index/index.vue',
'/src/pages/index/index.css',
'/src/pages/index/index.config.js'
]
module.exports = {
handler,
basePageFiles
}