日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

vue cli 4 多环境_Vue 前端uni-app多环境配置部署服务器的问题

發布時間:2024/10/12 vue 111 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vue cli 4 多环境_Vue 前端uni-app多环境配置部署服务器的问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載請標明出處:

https://dujinyang.blog.csdn.net/article/details/100831712/

本文出自:【奧特曼超人的博客】

前端Vue

Vue 經過這一年的進化,模版也是相當豐富了,但在使用多界面時,個人感覺還是有點弊端,CSS的樣式問題。

Vue.js(讀音 /vju?/, 類似于 view) 是一套構建用戶界面的漸進式框架。

針對問題

多環境部署會引發很多問題,當然,是開發環境下了,這次博主我也引發了這個小問題,從而看到很多人對部署的環境會有疑問,畢竟Vue沒有暴漏出像JAVA那樣的可配置環境。

SyntaxError: Unexpected token p in JSON
  • 需要區分 開發、QA、預發布、生產等多個環境,如何滿足?
  • 怎么部署到服務器上自動判斷呢?

對Uni-app 的使用也是這段時間好奇才去看了看,當然,并不是去看使用,而是好奇整個架構模版的生成,還是使用HBUILDER去開發,所以我們得注意兩件事情:

  • Vue 只關注視圖層 , 采用自底向上增量開發的設計。
  • Vue API 實現了數據綁定和視圖組件,所以,很多人用 npm install 后都會出現package的系列問題
  • package.json描述

    不管你安裝說明組件或模版,總是會看到目錄下 package.json ,那這個文件是做什么用的呢?其實這個文件相當于 config ,所以你得注意 dist 或 lib 。

    多環境部署

    很多人想要像AS或Gradle一樣去描述配置環境,類似下面這種偽判斷:

    區分 開發、QA、預發布、生產等多個環境 if (process.env.ENV === 'development') { } if (process.env.ENV === 'QA') { } if (process.env.ENV === 'pre-release') { } if (process.env.ENV === 'production') { }

    會報錯?來看看源碼到底是為何……

    查看源碼獲取解決方案

    來看下源碼,path路徑讀取的Key是path ,所以:

    const path = require('path')

    其它可以忽略,重要的是下面這段:

    module.exports = function (content) { if (process.env.UNI_USING_COMPONENTS || process.env.UNI_PLATFORM === 'h5') { return require('./index-new').call(this, content) } this.cacheable && this.cacheable() const manifestJsonPath = path.resolve(process.env.UNI_INPUT_DIR, 'manifest.json') const manifestJson = parseManifestJson(fs.readFileSync(manifestJsonPath, 'utf8')) this.addDependency(manifestJsonPath) const pagesJson = parsePagesJson(content) if (manifestJson.transformPx === false) { process.UNI_TRANSFORM_PX = false } else { process.UNI_TRANSFORM_PX = true } if (process.env.UNI_PLATFORM === 'h5') { return require('./platforms/h5')(pagesJson, manifestJson) } const changedEmitFiles = [] function checkPageEmitFile (pagePath, pageStyle) { checkEmitFile(pagePath, parseStyle(pageStyle), changedEmitFiles) } parsePages(pagesJson, function (page) { checkPageEmitFile(page.path, page.style) }, function (root, page) { checkPageEmitFile(normalizePath(path.join(root, page.path)), page.style) }) const jsonFiles = require('./platforms/' + process.env.UNI_PLATFORM)(pagesJson, manifestJson) if (jsonFiles && jsonFiles.length) { jsonFiles.forEach(jsonFile => { jsonFile && checkEmitFile(jsonFile.name, jsonFile.content, changedEmitFiles) }) } changedEmitFiles.forEach(name => { this.emitFile(name + '.json', emitFileCaches[name]) }) return '' }

    有點多,抽取一下:

    if (manifestJson.transformPx === false) { process.UNI_TRANSFORM_PX = false } else { process.UNI_TRANSFORM_PX = true } if (process.env.UNI_PLATFORM === 'h5') { return require('./platforms/h5')(pagesJson, manifestJson) }

    其它代碼太多,暫時不貼了,大致意義就是解析package.json后,再去讀取H5的manifest配置,所以最后發現,是manifest配置有問題,查找是多了 pubilcPath ,去掉后,SyntaxError: Unexpected token p 錯誤也就消失了。

    因為當代路徑就在目錄下了,所以打包的時候會引入了config,那自己只需要再分開一份配置文件即可。

    這樣就解決了,當然也可以安裝個cross-env ,安裝代碼:

    npm install --save-dev cross-env

    這樣的話,我們可以定義:

    "build": "cross-env BUILD_ENV=production node build/build.js 與50位技術專家面對面20年技術見證,附贈技術全景圖

    總結

    以上是生活随笔為你收集整理的vue cli 4 多环境_Vue 前端uni-app多环境配置部署服务器的问题的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。