我做了三年前端,總結了這些行走江湖必備技能,希望對你有用【不斷更新】


1.uni-app創建項目不僅可以在hbuilder里可視化新建項目,其實在vue-cli腳手架里也有關於預設的uni-app模板,具體命令如下:

vue create -p dcloudio/uni-preset-vue my-project

等待它下載一些相關插件,然后會讓你選擇你想要的項目模板

 

 然后等下載完模板就可以使用了,本人封裝了兩個關於這個模板的框架,包含js和ts兩個,開箱即用,直接clone即可,歡迎start 傳送門

2.@vue/cli在windows系統下初始化項目那些自定義配置項選擇並不會工作,這時候可以用該命令喚醒:

winpty vue.cmd create your_project

如果你仍想用 vue create your_project 這個命令啟動,可以在~/.bashrc添加如下配置解決

alias vue='winpty vue.cmd'

 

 

 3. 安裝完vscode當你發現按tab鍵不能補全標簽,於是你裝了 Auto Close Tag,裝完之后發現還是不能用,是因為vscode默認關閉了這個功能,想要打開操作如下

點擊左上角  【文件】-->【首選項】-->【設置】,搜索tab,在搜索結果中找到 editor.tabCompletion,選擇on

 

 

4. stylus是一種新的css預編譯框架,雖然HBuilder軟件中的插件庫中有stylus插件,但是安裝后寫stylus語法也有可能報錯,意思是stylus-loader沒找到,需要你初始化它。其實stylus的安裝方式和sass一樣,命令行安裝下面兩個插件即可

npm install stylus stylus-loader --save-dev

 

 

5.我們一般寫文檔喜歡用markdown,里邊難免會插入一些圖片,比如流程圖,類圖等等,但是像有道雲筆記只能使用在線資源,如果想上傳本地圖片是需要開會員的,這個可以理解嘛,畢竟要用人家的對象存儲。但是還是有辦法的,那就是我們注冊一個csdn博客,我們可以專門放草稿箱一篇博客,專門用來上傳圖片用,把我們的本地圖片粘在博客后,右鍵圖片,點擊圖像屬性,把url復制到markdown中就行了

 

 

 

 

 

6. vue-cli3.x下載的模板,如果項目中想使用cnd減少包體積,首先在public/index.html文件中引入cdn鏈接,然后再vue.config.js中添加如下配置

configureWebpack: {
    externals: {
      'element-ui': 'ELEMENT'
    }
  }

 

7.windows系統裝完淘寶鏡像cnpm后,在vscode里出現如下錯誤

 

 是因為powerShell的執行策略有一個安全功能,它可控制PowerShell加載配置文件和運行腳本的條件。此功能有助於防止執行惡意腳本。

所以我們要更改他的安全策略,命令是Set-ExecutionPolicy,首先在win10的系統搜索框中搜索powershell,右鍵管理員身份打開

 

 輸入命令--> 選擇A 

 set-ExecutionPolicy RemoteSigned

通過這個命令查看狀態

get-ExecutionPolicy

 

 如果是RemoteSigned證明成功,無需重啟

 

8.node環境使用import

安裝babel轉碼

npm i babel-cli babel-preset-env --D

在項目根目錄下新建名為 .babelrc文件,並寫入如下內容

{
    "presets": [
      ["env", {
        "targets": {
          "node": "current"
        }
      }]
    ]
  }

然后就能用import導入模塊了,比如在入口文件app.js中

import Koa from 'koa';
const app = new Koa();

 

啟動服務的命令就不是 node app.js了, 換成 babel-node + 入口文件了

我們可以把配置在package.json中,在script對象中寫入:

"start": "babel-node src/app.js"  //src/app.js是入口文件的路徑,根據項目划分不同需要替換成對應的路徑

npm start 啟動命令

如果想實時更新服務,不至於每次更新代碼每次啟動服務,我們可以用nodemon插件

npm i nodemon -S

啟動命令換成如下

"start": "nodemon src/app.js --exec babel-node"

npm start啟動,出現如下則證明成功

 

 

9.vue-cli3編譯多個空格

默認vue-cli3打包出來的項目如果標簽中有多個空格,比如   , 它只會渲染一個,應該是webpack給處理了,處理方式是在vue.config.js中添加如下配置

chainWebpack: ( config ) => {
    // 多個空格渲染配置
    config.module
      .rule('vue')
        .use('vue-loader')
          .tap(args => {
            args.compilerOptions.whitespace = 'preserve'
          })    
  }

重新打包,ok

 

10.gitlab 拉代碼報錯

fatal: refusing to merge unrelated histories

git pull origin master --allow-unrelated-histories

 具體原因參考

 

11.vue-cli3或者nuxt.js打包ts項目在生產環境壓縮代碼導致類名class異常,導致組件或類編譯失敗

只需要我們更改一下webpack配置即可,二者方法類似,具體如下:

vue-cli3項目需要載vue.config.js中添加如下內容:

 configureWebpack: config => {
   config.optimization.minimizer[0].options.terserOptions.keep_fnames = true;
 }

nuxt.js項目需要在nuxt.config.js的build字段下添加如下內容,因為nuxt打包時會有服務端環境,所以在這判斷一下

 build: {
    extend(config, { isDev, isClient }){
      if(isClient){
        config.optimization.minimizer[0].options.terserOptions.keep_fnames = true;
      }
    }
  }

 

12. vue-property-decorator這個插件在使用 ProvideReactive這個修飾器時可能會報Cannot redefine property 的錯誤

這是在這個包自8.3.0版本之后出現這個問題,網上有人說進行版本回歸,但是並沒有解決這個問題,但是升級到9.1.2解決了這個問題,具體操作如下:

npm i vue-property-decorator@9.1.2

 

13.js檢測數組的類型是object類型,是因為數組其實也是鍵值對,他的key就是他的索引,所以當你使用 typeof array 結果就是object了,所以為了區分數組和對象,我封裝了一個方法:

const judgeValueTypeFun = ( value ) => {
    let type = '';
    switch (true) {
        case typeof value === 'string':
            type = 'string' 
            break;
        case typeof value === 'number':
            type = 'number'
            break;
        case typeof value === 'boolean':
            type = 'boolean'
            break;
        case value.constructor === Object:
            type = 'object'
            break;
        case value.constructor === Array:
            type = 'array'
            break;
    }
    return type
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM