nuxt 搭建

1、安装

npx create-nuxt-app <project name项目名称>

注:npm4.0版本已内置 npx,无需重新安装 npx
安装过程中按需选择所需要的插件

   

     

2、运行项目

npm run dev

 

3、配置本地服务(看个人需求)

>>>nuxt.config.js 文件内

server: {
    port: 3006, // 端口自定义
    host: '0.0.0.0',
  },

 

4、安装css插件 less

npm install less less-loader@版本号,本次使用7 --save-dev

注:安装完即可在页面中使用

  4.1)、配置默认css文件

    4.1.1)、根目录下新建 assets 文件 ->style->common.less

                    

 

 

     4.1.2)、配置默认css

>>>nuxt.config.js 文件内

 css: [
    'vant/lib/index.css',
    '@/assets/style/common.less', // 加上这段,全局即可使用默认样式
  ],
 

 5、配置 VW 单位(移动端适配)

安装:npm install postcss-px-to-viewport --save-dev
>>>nuxt.config.js
配置 vw:
build: { postcss: { plugins: {
"postcss-px-to-viewport": { unitToConvert: "px", // 默认值`px`,需要转换的单位 viewportWidth: 375, // 视窗的宽度,对应设计稿宽度 // viewportHeight: 667, // 视窗的高度, 根据375设备的宽度来指定,一般是667,也可不配置 unitPrecision: 3, // 指定`px`转换为视窗单位值的小数位数 propList: ["*"], // 转化为vw的属性列表 viewportUnit: "vw", // 指定需要转换成视窗单位 fontViewportUnit: "vw", // 字体使用的视窗单位 selectorBlaskList: [".ignore-"], // 指定不需要转换为视窗单位的类 mediaQuery: false, // 允许在媒体查询中转换`px` minPixelValue: 1, // 小于或等于`1px`时不转换为视窗单位 replace: true, // 是否直接更换属性值而不添加备用属性 exclude: [], // 忽略某些文件夹下的文件或特定文件 landscape: false, // 是否添加根据landscapeWidth生成的媒体查询条件 @media (orientation: landscape) landscapeUnit: "vw", // 横屏时使用的单位 // landscapeWidth: 1134 // 横屏时使用的视窗宽度 }, ........ }, ........ }, ........ }

 6、nuxt.config.js部分配置

import reRouter from './re-router'

export default {
  loading: false, // 页面加载进度条
  // Global page headers: https://go.nuxtjs.dev/config-head
  head: {
    title: 'YFN',
    htmlAttrs: {
      lang: 'en'
    },
    meta: [
      { charset: 'utf-8' },
      { name: 'viewport', content: 'width=device-width, initial-scale=1' },
      { hid: 'description', name: 'description', content: '' },
      { name: 'format-detection', content: 'telephone=no' }
    ],
    link: [
      { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }
    ]
  },

  server: {
    port: 3006,
    host: '0.0.0.0',
  },
  // 环境变量设置
  env: {
    BASE_URL: process.env.BASE_URL,
    NODE_ENV: process.env.NODE_ENV
  },

  // Global CSS: https://go.nuxtjs.dev/config-css
  css: [
    'vant/lib/index.css',
    '@/assets/style/common.less'
  ],

  // Plugins to run before rendering page: https://go.nuxtjs.dev/config-plugins
  plugins: [
    {src:"~/plugins/axios.js",ssr:true},
    '@/plugins/vant',
    "@/plugins/api-plugin",
  ],

  // Auto import components: https://go.nuxtjs.dev/config-components
  components: true, // 是否自动引入根目录下的组件

  // Modules for dev and build (recommended): https://go.nuxtjs.dev/config-modules
  buildModules: [],

  // Modules: https://go.nuxtjs.dev/config-modules
  modules: [
    '@nuxtjs/axios',
    "@nuxtjs/proxy",
  ],

  // Build Configuration: https://go.nuxtjs.dev/config-build
  build: {
    postcss: {
        plugins: {
            "postcss-px-to-viewport": {
            unitToConvert: "px", // 默认值`px`,需要转换的单位
            viewportWidth: 375, // 视窗的宽度,对应设计稿宽度
            // viewportHeight: 667, // 视窗的高度, 根据375设备的宽度来指定,一般是667,也可不配置
            unitPrecision: 3, // 指定`px`转换为视窗单位值的小数位数
            propList: ["*"], // 转化为vw的属性列表
            viewportUnit: "vw", // 指定需要转换成视窗单位
            fontViewportUnit: "vw", // 字体使用的视窗单位
            selectorBlaskList: [".ignore-"], // 指定不需要转换为视窗单位的类
            mediaQuery: false, // 允许在媒体查询中转换`px`
            minPixelValue: 1, // 小于或等于`1px`时不转换为视窗单位
            replace: true, // 是否直接更换属性值而不添加备用属性
            exclude: [], // 忽略某些文件夹下的文件或特定文件
            landscape: false, // 是否添加根据landscapeWidth生成的媒体查询条件 @media (orientation: landscape)
            landscapeUnit: "vw", // 横屏时使用的单位
            // landscapeWidth: 1134 // 横屏时使用的视窗宽度
            }
        }
    },
    extend(config, {isDev, isClient}) {
      config.module.rules.push({
        test: /\.swf$/,
        loader: "url-loader",
        options:{
          limit: 10000
        }
      });
    }
  },
  router: reRouter,
  axios: {
    proxy: true,
    prefix: '/m/api', // baseURL
    proxyHeaders: false,
    credentials: false
  },
  proxy: {
    '/m/api': {
      target: process.env.BASE_URL, // 代理地址
      changeOrigin: true,
      pathRewrite: {
        '^/m/api': '', // 将 /api 替换掉,如果请求地址中有 /api 则不必替换
      },
    },
  }
}

 7、nuxt执行流程

 

posted @ 2022-08-19 09:55  忙着可爱呀~  阅读(64)  评论(0)    收藏  举报