動態配置腳本,在根目錄下新增腳本,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