原文鏈接: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 } ],