taro学习笔记

275 阅读2分钟

一、动态配置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,估计就可以了