动态配置脚本,在根目录下新增脚本,setProjectConfig.jsnode
var fs = require('fs')npm
const config = {}json
const testAppId = 'wx27c37580857867d0'微信
const prodAppId = 'wxf8995ca00fcdf03d'markdown
switch (process.env.PROJECT_ENV) {app
case 'dev':动画
config.appid = testAppIdui
breakspa
case 'test':3d
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"
解法: 不要用View组件,用Image组件
其实这不是taro的问题,是微信的问题,微信盒模型比较奇怪
Tips:
一、~是js里的按位取反操做符,**就是执行两次按位取反,其实就是保持原值,可是注意虽然是原值,可是对布尔型变量执行这个操做,会转化成相应的数值型变量,也就是true === 1,~~**false === 0