Skip to content

Commit

Permalink
fix: 修复编译微信小程序插件时 miniprogramRoot 被更改的问题 close #5338
Browse files Browse the repository at this point in the history
  • Loading branch information
Garfield550 committed Jan 16, 2020
1 parent 2cf6e70 commit 21a0b73
Showing 1 changed file with 12 additions and 2 deletions.
14 changes: 12 additions & 2 deletions packages/taro-cli/src/mini/index.ts
Expand Up @@ -23,23 +23,33 @@ function buildProjectConfig () {
const { buildAdapter, sourceDir, outputDir, outputDirName, appPath } = getBuildData()
let projectConfigFileName = `project.${buildAdapter}.json`
if (buildAdapter === BUILD_TYPES.WEAPP) {
// 微信小程序 projectConfig 不遵循多端配置规则,规则参考[项目配置](https://taro-docs.jd.com/taro/docs/project-config.html)
projectConfigFileName = 'project.config.json'
}
let projectConfigPath = path.join(appPath, projectConfigFileName)

let projectConfigPath = path.join(appPath, projectConfigFileName)
if (!fs.existsSync(projectConfigPath)) {
// 若项目根目录不存在对应平台的 projectConfig 文件,则尝试从源代码目录查找
projectConfigPath = path.join(sourceDir, projectConfigFileName)
if (!fs.existsSync(projectConfigPath)) return
}

const origProjectConfig = fs.readJSONSync(projectConfigPath)
// compileType 是 plugin 时不修改 miniprogramRoot 字段
let distProjectConfig = origProjectConfig
if (origProjectConfig['compileType'] !== 'plugin') {
distProjectConfig = Object.assign({}, origProjectConfig, { miniprogramRoot: './' })
}

if (buildAdapter === BUILD_TYPES.TT || buildAdapter === BUILD_TYPES.QQ) {
// 输出头条和 QQ 小程序要求的 projectConfig 文件名
projectConfigFileName = 'project.config.json'
}

fs.ensureDirSync(outputDir)
fs.writeFileSync(
path.join(outputDir, projectConfigFileName),
JSON.stringify(Object.assign({}, origProjectConfig, { miniprogramRoot: './' }), null, 2)
JSON.stringify(distProjectConfig, null, 2)
)
printLog(processTypeEnum.GENERATE, '工具配置', `${outputDirName}/${projectConfigFileName}`)
}
Expand Down

0 comments on commit 21a0b73

Please sign in to comment.