nuxt+vant+rem項目構建


原文鏈接:https://blog.csdn.net/Young_Gao/article/details/93605428

 

一、創建項目

1、使用如下命令生成項目

vue init nuxt-community/starter-template testPro  --testPro為項目名稱

2、進入到項目根目錄下,使用npm install 安裝依賴

3、npm run dev 在開發環境下運行項目

 

二、修改項目的host 和 port

在package.json文件中新增如下代碼:

"config": {
    "nuxt": {
      "host": "192.168.124.4",    // 此處可以改成自己的ip
      "port": "1818"              //  端口可以隨意更改
    }
  },

 

三、配置全局css樣式

新建~assets/css/reset.css,並在nuxt.config.js中添加如下配置:

css: ['~assets/css/reset.css']

四、在nuxt中使用sass

   只需要安裝 node-sass sass-loader 就可以了

npm i node-sass sass-loader -D

 如果需要引入.scss文件,只需在nuxt.config.js中添加如下配置:

css:[
    '~assets/common.scss'
  ],

如果需要引入scss全局變量或函數之類的話,需要如下步驟

  1)安裝此插件

    cnpm install --save-dev @nuxtjs/style-resources

  2)接下來我們需要修改nuxt.config.js里面的配置,如下:

          來源https://blog.csdn.net/WU5229485/article/details/99291603

export default {
  modules: [
    '@nuxtjs/style-resources',
  ],
  styleResources: {
    scss: './assets/variables.scss',
    less: './assets/**/*.less',
    // sass: ... 需要什么配置什么,這里是全局的   根據需要配置,沒有可以不配置
  }
}

  

五、使用sass函數實現px2rem

1、方法一(通過插件動態的設置不同尺寸屏幕下的跟字體)當前位置 ~assets/sass/resources.scss
$baseFontSize: 10;//開發設備下的跟字體
@function px2rem($px){
  @return $px/$baseFontSize * 1rem;
}

  添加js修改跟字體 (當前位置 ~plugins/custom/rootFontSize.js) 

var ui = 750;
// 自己設定的font值
var font = 100;
// 得到比例值
var ratio = ui/font;
var oHtml = document.documentElement;
var screenWidth = oHtml.offsetWidth;
// 初始的時候調用一次
getSize();
window.addEventListener('resize', getSize);
// 在resize的時候動態設置fontsize值
function getSize(){
  screenWidth = oHtml.offsetWidth;
  // 限制區間
  // if(screenWidth <= 320){
  //   screenWidth = 320;
  // }else if(screenWidth >= ui){
  //   screenWidth = ui;
  // }
  oHtml.style.fontSize = screenWidth/ratio + 'px';
}

  使用rootFontSize.js (當前位置nuxt.config.js )

plugins: [
   {
     src: '~plugins/custom/rootFontSize.js', ssr: false
   }
]

  

 2、方法二(使用postcss插件)  此方法暫無親測

  postcss-pxtorem(將px自動轉換成rem)

  autoprefixer(自動為css選擇器添加前綴)

cnpm install postcss-pxtorem autoprefixer --save-dev

  nuxt.config.js中的配置如下

build: {
    /*
    ** Run ESLint on save
    */
    extend (config, { isDev, isClient }) {
      if (isDev && isClient) {
        config.module.rules.push({
          enforce: 'pre',
          test: /\.(js|vue)$/,
          loader: 'eslint-loader',
          exclude: /(node_modules)/
        })
      }
    },
postcss: {
plugins: {
  'postcss-pxtorem':{
     rootValue: 40,
     propList: ['*']
   }
  },
  preset: {
     autoprefixer: true
  }
 }

}

  

 

六、實現接口代理

  使用@nuxtjs/axios

npm install @nuxtjs/axios

  nuxt.config.js中配置如下:

modules: ['@nuxtjs/axios'],
axios: {
    proxy: true
},
proxy: {
    '/api/': {
      target: 'http://lichunshan.top:3000',
      pathRewrite: {'^/api': ''}}
}

  

七、使用第三方插件庫vant

      在plugins文件夾中新建文件vant.js,內容如下

import Vue from 'vue';
import Vant from 'vant';
import 'vant/lib/index.css';

Vue.use(Vant);

  nuxt.config.js中配置如下

plugins: [
    {
      src: '~plugins/three_sides/vant.js', ssr: true
    }
  ]

//  如果plugins對象中已有內容的話只需將對象追加在后面即可
例如
plugins: [
    {
      src: '~plugins/rootFontSize.js', ssr: false
    },
    {
      src: '~plugins/vant.js', ssr: true
    }
  ],

  

  


免責聲明!

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



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