一、动态配置appid
动态配置脚本,在根目录下新增脚本,setProjectConfig.js
var fs = require('fs')
const config = {}
const testAppId = 'wx27c37580857867d0'
const prodAppId = 'wxf8995ca00fcdf03d'
switch (process.env.PROJECT_ENV) {
case 'dev':
config.appid = testAppId
break
case 'test':
config.appid = testAppId
break
case 'prod':
config.appid = prodAppId
break
default:
config.appid = testAppId
}
function writeJson() {
fs.readFile('./project.config.json', function(err, data) {
if (err) {
return console.error()
}
var person = {...JSON.parse(data.toString()), ...config}
var str = JSON.stringify(person, null, 2)
fs.writeFile('./project.config.json', str, (writeError) => {
if (writeError) {
console.error(writeError)
} else {
console.log('-------修改成功-------')
}
})
})
}
writeJson()
再修改package.json文件中的script启动脚本
"set:prod": "cross-env PROJECT_ENV=prod node ./setProjectConfig.js",
"set:test": "cross-env PROJECT_ENV=test node ./setProjectConfig.js",
"set:dev": "cross-env PROJECT_ENV=dev node ./setProjectConfig.js",
"prod:weapp": "npm run set:prod && cross-env PROJECT_ENV=prod taro build --type weapp",
"test:weapp": "npm run set:test && cross-env PROJECT_ENV=test taro build --type weapp",
"dev:weapp": "npm run set:dev && cross-env PROJECT_ENV=dev taro build --type weapp --watch"
二、taro之坑
- transition平移动画第一次不生效问题
解法: 不要用View组件,用Image组件
- 盒模型
其实这不是taro的问题,是微信的问题,微信盒模型比较奇怪
Tips:
1、~是js里的按位取反操作符,就是执行两次按位取反,其实就是保持原值,但是注意虽然是原值,但是对布尔型变量执行这个操作,会转化成相应的数值型变量,也就是true === 1,~~false === 0
三、taro升级到指定版本
步骤:
1,全局 CLI 升级
如果你的 Taro CLI 以全局方式安装,并且你希望升级到 Taro 2.0 需要执行以下命令:
# 使用 Taro 自己
$ taro update self 2.2.11
# 如果你使用 MPM
$ npm update -g @tarojs/cli@2.2.11
# 如果你使用 Yarn
$ yarn global upgrade @tarojs/cli@2.2.11
2,之后在你的项目目录里运行以下命令来升级依赖:
taro update project 2.2.11
说明:这里可能无法编译,taro update project失败;
大部分情况按照官方文档是能正常升级并编译的,
如果实在无法更新项目中的库,则 暴力点就是直接删除它们,重新构建
taro init projectname
后,然后再把旧工程中的src拷贝进去,然后合并下配置比如package.json,安装其他的插件,比如taro-ui,估计就可以了