小程序HTTP调用无法成功?
通过 jenkins + gitLab 实现小程序自动化预览。
实现思路:
1)jenkins 每隔五分钟轮询 gitlab 上面的代码,如果有更新,就把代码拉下来。
2)清除原来的文件夹,重新编译(gulp 命令做的),重新安装依赖。
3)修改 ext.json 文件,通过 http 调用打开小程序,然后调用预览的 http 接口。
期望结果: 修改生效,修改完成后的小程序预览成功。实际结果:失败,文件中的 ext.json 文件虽然被修改成功,但是预览生成的依然是之前配置的小程序。
对比试验:直接手动修改小程序开发工具中的 ext.json 文件,然后再点击预览,能够成功。
#!/usr/bin/env node const fs = require( 'fs' ) const path = require( "path" ) function deleteDir(url){ var files = []; if ( fs.existsSync(url) ) { //判断给定的路径是否存在 files = fs.readdirSync(url); //返回文件和子目录的数组 files.forEach( function (file,index){ var curPath = path.join(url,file); if (fs.statSync(curPath).isDirectory()) { //同步读取文件夹文件,如果是文件夹,则函数回调 deleteDir(curPath); } else { fs.unlinkSync(curPath); //是指定文件,则删除 } }); fs.rmdirSync(url); //清除文件夹 } else { console.log( "给定的路径不存在!" ); } } deleteDir( '/Users/yujiahui/.jenkins/workspace/xls/dist/' ) const exec = require( 'child_process' ).execSync exec( 'npm install' ) exec( 'npm run test_build' ) const content = '{"description":"项目配置文件。","setting":{"urlCheck":false,"es6":true,"postcss":true,"minified":true,"enhance":true},"miniprogramRoot":"./","compileType":"miniprogram","appid":"wxqqqqqqqqqqqqqqq","projectname":"xls","condition":{"search":{"current":-1,"list":[]},"conversation":{"current":-1,"list":[]},"plugin":{"current":-1,"list":[]},"game":{"currentL":-1,"list":[]},"miniprogram":{"current":-1,"list":[]}}}' fs.writeFileSync( './dist/project.config.json' , content, 'utf-8' ) |
sed -i '' 's/\("extAppid": "\).*/\1wxaaaaaaaaaaa",/g' . /dist/ext .json # 修改小程序 id,并预览 sed -i '' 's/\("extTenantId": "\).*/\11aaaaaaaa",/g' . /dist/ext .json #这个是我们自定的内容 # 打开微信开发者工具 /Applications/wechatwebdevtools .app /Contents/Resources/app .nw /bin/cli -o port=$( cat "/Users/yujiahui/Library/Application Support/微信开发者工具/Default/.ide" ) echo "微信开发者工具运行在${port}端口" return_code=$(curl -sL -w %{http_code} http: //127 .0.0.1:${port} /open ) if [ $return_code == 200 ] then echo "返回状态码200,devtool启动成功!" else echo "返回状态码${return_code},devtool启动失败" exit 1 fi echo "发布开发版!" wget -O $BUILD_ID.png http: //127 .0.0.1:${port} /preview ?projectpath= /Users/yujiahui/ .jenkins /workspace/xls/dist |
问题:sed 修改后的文件,小程序开发工具不能识别吗?依然调用的是之前的缓存,所以生成的也是之前配置中的小程序吗?