Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

开发者工具频繁编译的问题 #190

Closed
kenberkeley opened this issue Jun 24, 2018 · 4 comments
Closed

开发者工具频繁编译的问题 #190

kenberkeley opened this issue Jun 24, 2018 · 4 comments

Comments

@kenberkeley
Copy link

kenberkeley commented Jun 24, 2018

目前我的解决方案是:

/**
 * Taro 默认的开发模式是将整个项目拖进微信开发者工具
 * 若开启了【保存时自动编译小程序】,则会出现频繁编译的问题:
 *   1.保存源码文件时会触发一次
 *   2.Taro build 后的文件写入 dist/ 时又会触发一次
 *  (上述两者的编译间隔时间非常短,且前者显然是无效的编译)
 * 能用 Taro 开发小程序的开发者,一般都不会直接在官方的开发者工具上进行开发
 * 为了避免以上问题,我们可以使用如下脚本,为 dist/ 生成对应的 project.config.json
 * 由此,则可直接把 dist/ 拖进开发者工具进行预览,而不是拖入整个项目
 */
const path = require('path')
const fs = require('fs-extra')
const chokidar = require('chokidar')

const projConfFilename = 'project.config.json'
const origProjConf = fs.readJsonSync(`./${projConfFilename}`)

const projConfForDist = Object.assign({}, origProjConf, {
  miniprogramRoot: './'
})
const pathToProjConfForDist = path.join(
  __dirname,
  origProjConf.miniprogramRoot,
  projConfFilename
)
function genProjConfForDist () {
  fs.outputJsonSync(
    pathToProjConfForDist,
    projConfForDist
  )
}

const fileWatcher = chokidar.watch(pathToProjConfForDist)
fileWatcher.on('unlink', genProjConfForDist)

genProjConfForDist()

/**
 * 本脚本可保存到项目根目录下,命名为 genProjConfForDist.js
 * 把 package.json 中的 npm scripts 改为:
 * ```
 * "scripts": {
 *   "genProjConfForDist": "node genProjConfForDist.js",
 *   "start": "run-p dev:weapp genProjConfForDist",
 *   "dev:weapp": "npm run build:weapp -- --watch",
 *   "build:weapp": "taro build --type weapp",
 *   "dev:h5": "npm run build:h5 -- --watch",
 *   "build:h5": "taro build --type h5"
 * }
 * ```
 * 然后安装依赖 cnpm i -D chokidar fs-extra npm-run-all
 * 往后只需要敲 npm start 即可进行开发
 */
@luckyadam
Copy link
Member

目前是模板会自动生成一份 project.config.json 指向 dist 目录,这样开发者选择预览项目时就能直接选择项目根目录了,这样感觉开发体验会更好些哦~

@kenberkeley
Copy link
Author

现在主要的问题是重复编译

@luckyadam
Copy link
Member

恩~ 感觉你的方案也很 OK,可以提个 PR,加到模板那里~

@kenberkeley
Copy link
Author

#192

luckyadam added a commit that referenced this issue Jun 25, 2018
feat(taro-cli): 为 dist/ 编译出 project.config.json,由此可把 dist/ 拖入开发者工具以避免无效编译,详见 #190
Chen-jj pushed a commit that referenced this issue Sep 16, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants