项目配置vue.config jsconfig babel.config .prettierc .env .eslintrc

这篇具有很好参考价值的文章主要介绍了项目配置vue.config jsconfig babel.config .prettierc .env .eslintrc。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

.env

在一个产品的前端开发过程中,一般来说会经历本地开发、测试脚本、开发自测、测试环境、预上线环境,然后才能正式的发布。对应每一个环境可能都会有所差异,比如说服务器地址、接口地址、websorket地址…… 等等。在各个环境切换的时候,就需要不同的配置参数,所以就可以用环境变量和模式,来方便我们管理。

  •  在根目录添加.env文件,配置所有情况下都会用到的配置
  • .env.production对应生产环境
  • .env.development对应开发环境
  • .env.[model] 用户创建的环境

        npm run dev(serve) :其实是运行了 vue-cli service serve ,默认模式为  development (读取.env.development)。可以在 .env.development 文件下修改该模式的 NODE_ENV 。
        npm run build ,其实运行了 vue-cli service build ,默认模式为  production (读取.env.production)。可以在 .env.production 文件下修改该模式的 NODE_ENV 

        由于vue-cli只给我们默认配置了pro和dev两个环境,如果我们需要建立新环境,需要自己定义model值。

// package.json
{
  "scripts": {
    "serve": "vue-cli-service serve",//默认就是 development开发环境
    "build": "vue-cli-service build",//默认就是 production生产环境
    "serve:beta": "vue-cli-service serve --mode beta",
    ...
  },

        beta为我们自建的环境,同时我们需要建立配置文件.env.beta

项目配置vue.config jsconfig babel.config .prettierc .env .eslintrc,三叠云项目,vue.js,前端,javascript

//.env.beta文件
NODE_ENV = 'beta';
VUE_APP_NODE_ENV = 'beta'
VUE_APP_HOST=beta.sandieyun.com

     环境变量定义必须以"VUE_APP_"作为前缀。

     在Vue.config.js里读取环境变量:

module.exports = {
    ...
    devServer: {
        https: process.env.NODE_ENV !== 'dev',
    },
}

      项目中读取环境变量:

  get linkUrl() {
    return `https://app.${process.env.VUE_APP_HOST}/link/xxxx`;
  }

        除了环境变量,还能定义两个特殊变量:

  •  NODE_ENV - 会是 "development"、"production" 或 "test" 中的一个。具体的值取决于应用运行的模式。
  •  BASE_URL - 会和 vue.config.js 中的 publicPath 选项相符,即你的应用会部署到的基础路径。

vue.config.js

        vue.config.js 是一个可选的配置文件,如果在项目根目录上存在这个文件,则会被@vue/cli-service加载。

module.exports = {
    xxx:xxxx,
    ...
}
publicPath

         publicPath 选项用于指定项目的公共路径,即项目部署时的基本 URL。 

        默认为"/"。

        默认情况下,Vue CLI 会假设你的应用是被部署在一个域名的根路径上,例如 https://www.my-app.com/

        如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.my-app.com/my-app/,则设置 publicPath 为 /my-app/

        publicPath可以被设置为''或者'./'。这样所有的资源都会被链接为相对路径,这样打出来的包可以被部署在任意路径。

outputDir

         当运行 vue-cli-service build 时生成的生产环境构建文件的目录,也就是打包后的文件目录。

assetsDir

        放置生成的静态资源 (js、css、img、fonts) 的目录。总目录名字叫:static,里面包含子目录,css,img,js三个文件夹。

indexPath

        指定生成的 index.html 的输出路径 (相对于 outputDir)。也可以是一个绝对路径,也可以将打包的index.html文件文字改成school,html。

module.exports = {
    outputDir: 'dist',
    assetsDir: 'static',
    indexPath: 'index.html'
}
 pages

        其值应该是一个对象,对象的 key 是入口的名字,value 是:\

module.exports = {
  pages: {
    index: {
      // page 的入口
      entry: 'src/index/main.js',
      // 模板来源
      template: 'public/index.html',
      // 在 dist/index.html 的输出
      filename: 'index.html',
      // 当使用 title 选项时,
      // template 中的 title 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title>
      title: 'Index Page',
      // 在这个页面中包含的块,默认情况下会包含
      // 提取出来的通用 chunk 和 vendor chunk。
      chunks: ['chunk-vendors', 'chunk-common', 'index']
    },
    // 当使用只有入口的字符串格式时,
    // 模板会被推导为 `public/subpage.html`
    // 并且如果找不到的话,就回退到 `public/index.html`。
    // 输出文件名会被推导为 `subpage.html`。
    subpage: 'src/subpage/main.js'
  }
}
productionSourceMap

        如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。

module.exports = {  
productionSourceMap: false, //因为内存占用问题,暂时关闭sourceMap
}
 devServer

        所有 webpack-dev-server 的选项都支持

  devServer: {
    // 非DEV环境则开启https协议
    https: process.env.NODE_ENV !== 'dev',
    // 禁用host的检查,使得webpack-dev-server可以接受来自任何网络环境下的请求
    disableHostCheck: true,
  },

        新版的vue-cli已经将disableHostCheck改成

 allowedHosts: 'all',
  lintOnSave 

        取值:true | false | 'warning' | 'default' | 'error'

        用于指定是否在保存文件时执行代码检查

  • 设置为 true 或 'warning' 时,eslint-loader 会将 lint 错误输出为编译警告。默认情况下,警告仅仅会被输出到命令行,且不会使得编译失败。
  • 如果你希望让 lint 错误在开发时直接显示在浏览器中,你可以使用 lintOnSave: 'default'。这会强制 eslint-loader 将 lint 错误输出为编译错误,同时也意味着 lint 错误将会导致编译失败。
  • 设置为 error 将会使得 eslint-loader 把 lint 警告也输出为编译错误,这意味着 lint 警告将会导致编译失败。
module.exports = {
    // 在保存文件时不会运行 lint 检查,禁用 linting 功能。
    lintOnSave: false,
}
configureWebpack

        如果这个值是一个对象,则会通过 webpack-merge 合并到最终的配置中。

const {
  optimize: { LimitChunkCountPlugin },
} = require('webpack');

module.exports = {
 configureWebpack: {
    plugins: [
      new LimitChunkCountPlugin({
        maxChunks: 10,
      }),
    ],
  },
}

        我们知道在webpack打包后会产生大量的chunk.xxxx的文件,如果chunk文件过多,会增加http请求的开销。所以我们加了webpack插件里的LimitChunkCountPlugin限制最大chunk文件数

chainWebpack

        是一个函数,会接收一个基于 webpack-chain 的 ChainableConfig 实例。允许对内部的 webpack 配置进行更细粒度的修改。说白了就是给你配置更精细的webpack配置。

chainWebpack: config =>
    config
      /** @description 使用CDN访问以下依赖 */
      .externals({
        'vue': 'Vue',
        'ant-design-vue': 'antd',
        'moment': 'moment',
        'lodash': '_',
        'echarts': 'echarts',
      })
      /** @description 压缩vue文件<template>中的换行 */
      .module.rule('vue')
      .use('vue-loader')
      .loader('vue-loader')
      .tap(options => ({
        ...options,
        whitespace: 'condense',
      }))
      .end()
      .end()
      /** @description 支持import excel文件 */
      .rule('file')
      .test(/\.(xls|xlsx|doc|docx)(\?.*)?$/)
      .use('url-loader')
      .loader('url-loader')
      .end(),

        这里其实是三部分配置:

项目配置vue.config jsconfig babel.config .prettierc .env .eslintrc,三叠云项目,vue.js,前端,javascript

        我们先看这个:这部分其实只是修改 Loader 选项,在默认的loader options中新加了一条whitespace

        项目配置vue.config jsconfig babel.config .prettierc .env .eslintrc,三叠云项目,vue.js,前端,javascript

        这个是新增了一个file loader,当file name符合test里的正则表达式时,引用url-loader处理它 

项目配置vue.config jsconfig babel.config .prettierc .env .eslintrc,三叠云项目,vue.js,前端,javascript

        这个最难理解。我们先搞清楚什么是 externals

        官方的八股文是这么写的:

就是webpack可以不处理应用的某些依赖库,使用externals配置后,依旧可以在代码中通过CMD、AMD或者window/global全局的方式访问。

     其实就是把依赖插件抽离出来,通过CDN引入,而不占包体积。但是我们的项目文件又依赖这些插件生成的全局属性,比如window.Vue,window.echarts,window._。我们把依赖插件抽出来,那项目文件在打包的时候就会发生编译错误。所以我们又要把这些插件生成的全局变量名告诉webpack。

        具体可以看这篇文章,讲得很明白!Webpack--externals(外部扩展)详解_webpack externals-CSDN博客externals用法详解_webpack externalshttps://blog.csdn.net/weixin_39964419/article/details/127263941?utm_source=miniapp_weixin

jsconfig.json

        是vscode生成的。表示该目录是JavaScript项目的根目录。jsconfig.json文件指定根文件和JavaScript语言服务提供的功能选项。

{
  // 项目包含的文件
  "include": ["src/**/*"],
  // 项目排除的文件 搜索不会搜到这里面
  "exclude": ["node_modules"],
    
  "compilerOptions": {
    "target": "esnext",
    "moduleResolution": "node",
    "baseUrl": "./",
    "strict": true,
    "paths": {
      "@/*": ["./src/*"]
    },
    "experimentalDecorators": true
  }
}

        ESNext:泛指,它永远指向下一个版本。这个paths可以这么用:

import { crossStorageModule } from '@/enum/store';


        项目配置vue.config jsconfig babel.config .prettierc .env .eslintrc,三叠云项目,vue.js,前端,javascript

        配置好在vscode的设置里打开JScheck

项目配置vue.config jsconfig babel.config .prettierc .env .eslintrc,三叠云项目,vue.js,前端,javascript 

babel.config

        JavaScript 编译器配置,它可以把需要转译的代码转译成低版本兼容的代码

module.exports = {
  presets: ['@vue/cli-plugin-babel/preset'],
};

@vue/cli-plugin-babel/preset是一种预设

他构建在’@babel/preset-env’的基础上,并添加了一些针对Vue.js项目的优化。这个预设不仅确保你可以使用最新的javascript特性,还会根据Vue.js的需求对Babel进行配置

 .prettierrc

        依赖于vscode的Prettier - Code formatter扩展

项目配置vue.config jsconfig babel.config .prettierc .env .eslintrc,三叠云项目,vue.js,前端,javascript

         配置好后我们可以通过右键进行格式化项目配置vue.config jsconfig babel.config .prettierc .env .eslintrc,三叠云项目,vue.js,前端,javascript

{
  // 缩进字节数
  "tabWidth": 2,
  // 缩进不使用tab,使用空格
  "useTabs": false,
  // 句尾添加分号
  "semi": true,
   // 使用单引号代替双引号
  "singleQuote": true,
  // props 是否用 引号 包裹
  "quoteProps": "consistent",
  // 单引号
  "jsxSingleQuote": false,
  // 行尾逗号
  "trailingComma": "all",
  // 花括号内填充空格 { a: 23 }
  "bracketSpacing": true,
  // 标签内有文字,尾标签>会单独成一行
  "bracketSameLine": false,
  // 箭头函数一个参数是否使用括号包裹参数
  "arrowParens": "avoid",
  // just for vue
  "vueIndentScriptAndStyle": false,
  // 换行标识
  "endOfLine": "auto"
}

.eslintrc.js

# 安装eslint
npm install eslint --save-dev

大多数IDE都自带eslint插件,在编写代码的时候会按照eslint的规则进行代码提示。

module.exports = {
  // 是否在父级目录寻找配置文件
  root: true,
  // 用于启用特定环境的全局变量
  env: {
    node: true,
  },
  extends: ['plugin:vue/essential', 'eslint:recommended', '@vue/prettier'],
  //用于设置解析器
  parser: 'vue-eslint-parser',
  parserOptions: {
    parser: '@babel/eslint-parser',
    ecmaFeatures: { legacyDecorators: true },
  },
  // 配置规则
  //"off" 或 0 - 关闭规则
  //"warn" 或 1 - 开启规则,使用警告级别的错误:warn (不会导致程序退出)
  // "error" 或 2 - 开启规则,使用错误级别的错误:error (当被触发的时候,程序会退出)
  rules: {
    'arrow-body-style': ['error', 'as-needed'],
    'camelcase': 'error',
    'eqeqeq': ['error', 'smart'],
    'semi': ['error', 'always'],
    'no-var': 'error',
    'no-duplicate-imports': 'error',
    'no-template-curly-in-string': 'error',
    'consistent-this': ['error', '不允许将this重命名'],
    'dot-notation': 'error',
    'no-eval': 'error',
    'no-implied-eval': 'error',
    'no-multi-str': 'error',
    'no-return-await': 'error',
    'no-unneeded-ternary': 'error',
    'no-unused-vars': ['error', { ignoreRestSiblings: true }],
    'object-shorthand': 'error',
    'prefer-arrow-callback': 'error',
    'prefer-const': ['error', { destructuring: 'all' }],
    'prefer-rest-params': 'error',
    'require-await': 'error',
    'no-restricted-syntax': [
      'error',
      {
        selector: 'ForInStatement',
        message: '用Object.keys().forEach()代替for in循环',
      },
      {
        selector: 'ForStatement',
        message: '如果没有性能原因,用forEach、map代替for循环',
      },
    ],
    'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'warn',
    'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'warn',
    'vue/multi-word-component-names': 'off',
  },
};
每次commit代码执行eslint检查

下载依赖

npm i -s -d lint-staged husky

在package.json配置文章来源地址https://www.toymoban.com/news/detail-754348.html

{
  "name": "triascloud-app-pc",
  "version": "0.1.0",
  "scripts": {
    "dev": "cross-env NODE_OPTIONS=--max-old-space-size=4096 vue-cli-service serve",
  },
  "dependencies": {
      ...
  },
  "devDependencies": {
   ...
  },
  "gitHooks": {
    "pre-commit": "lint-staged"
  },
  "lint-staged": {
    // 对js和vue文件进行检查
    "*.{js,vue}": [
      "cross-env NODE_ENV=production vue-cli-service lint",
      "git add"
    ]
  }
}

到了这里,关于项目配置vue.config jsconfig babel.config .prettierc .env .eslintrc的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【已解决】vue报错:Parsing error: No Babel config file detected for...

    Vue项目报错:Parsing error: No Babel config file detected… 解决方法:在 package.json 里面添加 \\\"requireConfigFile\\\": false 即可。

    2024年02月15日
    浏览(46)
  • Vue+vite创建项目关于vite.config.js文件的配置

    Vue项目创建时,我们见过vue-cli 创建项目和webpack 创建项目等方式。 现在Vue 3版本使用npm/pnpm create vue@latest 创建项目,是搭配使用vite工具构建的。 创建完成的项目,最明显的去别就是,项目配置文件命名不同,当然,配置语法也有不同。 vue-cli 创建的项目,项目配置文件文件

    2024年02月12日
    浏览(56)
  • vue3项目vite.config.js配置“代理”、“端口”、“打包名”、“图片压缩”

    前言 我们在搭建vue3项目的时候不可避免的会遇到“代理”、“端口”、“打包名”、“图片压缩”等配置问题,本文逐一讲述该怎么样在vite.config.js中去配置。 一、配置代理端口和代理转发 vite.config.ts添加如下代码 ts.config.json添加如下代码 图片压缩先要引入vite-plugin-imagem

    2024年02月07日
    浏览(80)
  • nginx部署vue项目,给访问路径加前缀的方法:vue.config.js配置publicPath和nginx配置alias

    本文主要涉及到 Vue.js 项目部署在 Nginx 上的相关问题。其中,publicPath 选项可以用于设置 Vue.js 项目的访问路径前缀,alias 指令可以用于 Nginx 中将请求路径映射到指定的文件系统路径。同时,通过设置 Nginx 配置文件,可以将多个 Vue.js 项目部署在同一个域名下的不同路径中。

    2024年02月16日
    浏览(52)
  • Rspack 创建 vue2/3 项目接入 antdv(rspack.config.js 配置 less 主题)

    Rspack CLI 官方文档。 rspack.config.js 官方文档。 创建项目(文档中还提供了 Rspack 内置 monorepo 框架 Nx 的创建方式,根据需求进行选择) 创建好项目并运行,目前 Rspack 版本支持的工程模版: 默认创建的 vue 项目为 vue3 : 如果需要其他版本,或其他框架的基础工程,可到官方提

    2024年02月11日
    浏览(54)
  • vue项目使用vite设置proxy代理,vite.config.js配置,解决本地跨域问题

    非同源请求,也就是协议(protocol)、端口(port)、主机(host)其中一项不相同的时候,这时候就会产生跨域 vite的proxy代理和vue-cli的proxy大致相同,需要在vite.config.js文件中配置(打包配置也在此) 代理配置在server中,可以上vite官网服务器选项查看server.proxy代码示例:开发服务器选

    2024年01月21日
    浏览(59)
  • vue项目之.env文件.env.dev、test、pro

    .env文件是vue运行项目时的环境配置文件。 . env: 全局默认配置文件,所有环境(开发、测试、生产等)均会加载并合并该文件 开发环境的配置,文件名默认为.env.development,如果需要改名也是可以的,比如改成.env.dev,但是这时就需要在启动项目时候在执行脚本后面加上对应的模

    2024年01月20日
    浏览(25)
  • 报错:Parsing error: No Babel config file detected...的解决方案

    报错:Parsing error: No Babel config file detected for E:前端学习资料9.vue基础classday03\\02-源代码\\01-componentvue.config.js. Either disable config file checking with requireConfigFile: false, or configure Babel so that it can find the config files. 报错方法解决 vue.config.js文件或babel.config.js文件或src中APP.vue开头有 红色

    2023年04月22日
    浏览(51)
  • vue环境变量配置——process.env

    在用 vue 框架时,经常用到两种环境,一种是开发环境,就是本地开发时的环境,一种是生产环境,就是要发布到线上的环境。 平时开发是用生产环境的,如果发布到线上时,需要切换环境为线上。如果人为去切换也是可以的,但是会容易忘记,可以通过配置不同的运行命令

    2024年02月09日
    浏览(42)
  • vue环境变量配置——process.env(详细)

    目录 一、背景 二、配置环境的实现原理 三、使用步骤 3.1安装依赖 3.2创建.env.dev 和.env.prod两个文件 3.3设置项目启动时默认的环境 3.4查看环境是否配置成功 在用 vue 框架时,经常用到两种环境,一种是开发环境,就是本地开发时的环境,一种是生产环境,就是要发布到线上

    2024年02月14日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包