vueCli2.0 和 vueCli3.0 项目中配置多环境运行打包 ?

本地 node 环境搭建 


  •  本地安装 node

node 官网 下载并安装 node,安装步骤只需一路 next 即可,安装完成后,打开命令行工具输入 node -v ,若出现对应版本号则说明安装成功,输入 npm -v,显示 npm 版本信息。

  • 切换到淘宝镜像

当 node 环境安装完以后,由于 npm 包管理工具有些资源被堵,为了更快更稳定,需要切换到淘宝的 npm 镜像 cnpm 。输入如下命令进行安装和镜像切换,输入 cnpm -v ,可以查看当前 cnpm 版本用来检验安装是否成功 。

npm install -g cnpm --registry=https://registry.npm.taobao.org

vueCli2.0 中配置多环境运行打包


  • 安装 vue-cli2.0 

vue-cli 提供一个官方命令行工具,可用于快速搭建大型单页面应用。全局安装命令如下,这里脚手架安装的是指 vue-cli2.0 ,命令中加 -g 则表示全局安装

cnpm i -g vue-cli
  • 基于 vue-cli2.0 新建项目

选定目录,命令行跳转到指定目录下,使用如下命令进行项目的创建 ,其中 my-project 为自定义项目名

vue init webpack my-project
// 或
vue init webpack-simple my-project

注意:这里是使用 vuecli2.0 新建项目的方法,目录结构和相关配置与 vuecli3.0 创建的项目不一致 。在 vuecli2.0 项目中存在 build 和 config 等配置目录,static 静态目录等 。而在 vuecli3.0 项目中将 webpack 配置项进行了高度融合,不在暴露出来,想要修改对应配置,需在根目录下新建 vue.config.js 文件中进行更改 。同时 vuecli3.0 也没有 build ,config,static 等目录

  • config 目录下新增文件

文件内容,如 ez.env.js 中 。

'use strict'
const merge = require('webpack-merge')
const prodEnv = require('./prod.env')

module.exports = merge(prodEnv, {
  NODE_ENV: '"ez"',
})
  •  更改 package.json 文件

主要是更改文件中 scripts 模块 内容,修改如下 。

"scripts": {
    "dev-jz": "webpack-dev-server --env=jz --inline --progress --config build/webpack.dev.conf.js",
    "dev-ez": "webpack-dev-server --env=ez --inline --progress --config build/webpack.dev.conf.js",
    "dev-tm": "webpack-dev-server --env=tm --inline --progress --config build/webpack.dev.conf.js",
    "dev-hs": "webpack-dev-server --env=hs --inline --progress --config build/webpack.dev.conf.js",
    "dev-snj": "webpack-dev-server --env=snj --inline --progress --config build/webpack.dev.conf.js",
    "build-jz": "node build/build.js --env=jz",
    "build-ez": "node build/build.js --env=ez",
    "build-tm": "node build/build.js --env=tm",
    "build-snj": "node build/build.js --env=snj",
    "build-hs": "node build/build.js --env=hs"
 },
  •  process.env.NODE_ENV 访问

通过 process.env,来判断当前模块的特有配置值,当运行 npm run dev-jz 或者 npm run build-jz 时,只会显示当前模块特有的配置值。还可以根据  process.env.NODE_ENV 属性来控制不同模块下的请求路径差异化,如示例 env 目录下文件。

main.js 中进行控制,在运行和打包当前模块的时候会读取当前模块请求路径等配置。 

const curEnv = process.env.NODE_ENV
let curEnvParam = require('../env/' + curEnv)
Vue.prototype.$globalEnv = {
  ...curEnvParam
};

 vueCli3.0 中配置多环境运行打包


  • 安装 vue-cli3.0 脚手架

安装 vue-cli3.0 ,可以使用下列任一命令安装此依赖包。注意:vue Cli 需要 Node 要 8.9 或者更高版本 

npm i -g @vue/cli
// 或者
yarn global add @vue/cli
  • 基于 vue-cli3.0 新建项目

打开终端,切换到目标目录下,输入如下 命令 进行项目新建。同时还可以使用 可视化面板 方式来新建项目,安装依赖。

// 命令行
vue create my-demo
// 面板
vue ui
  • 根目录下新建 .env.xx 文件

 文件内容,如 .env.hs 中 。

NODE_ENV = 'hs'
enableFaceID: true
  • 更改 package.json 文件

主要是更改文件中 scripts 模块 内容,修改如下 。

  "scripts": {
        "dev-jz": "vue-cli-service serve --mode jz",
        "dev-ez": "vue-cli-service serve --mode ez",
        "dev-tm": "vue-cli-service serve --mode tm",
        "dev-hs": "vue-cli-service serve --mode hs",
        "dev-snj": "vue-cli-service serve --mode snj",
        "build-jz": "vue-cli-service build --mode jz",
        "build-ez": "vue-cli-service build --mode ez",
        "build-tm": "vue-cli-service build --mode tm",
        "build-snj": "vue-cli-service build --mode snj",
        "build-hs": "vue-cli-service build --mode hs"
    },
  • vue.config.js 文件 

后续部分和 vuecli2.0 方式一致,需要注意的是,在 vuecli3.0 项目中由于将复杂的配置不在暴露,打包 时为了确保访问 静态资源路径正确,根目录下新增 vue.config.js 配置文件,进行根路径的相关配置 。

module.exports = {
    publicPath: "./", // 基本路径,可以设置成相对路径,这样所有的资源都会被链接为相对路径,打出来的包可以被部署在任意路径
    outputDir: "dist", //打包时生成的生产环境构建文件的目录
    assetsDir: 'public', // 放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录
    /*devServer: {
        proxy: 'http://localhost:8080'
    }*/
}

完整示例链接:vue-Cli-2.0: vue-Cli2.0 和 vue-Cli3.0 项目中多模式运行打包等配置示例

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 升级Vue 2.项目Vue 3.需要注意以下几点: 1. Vue 3.使用了新的响应式系统,需要使用新的API来替代Vue 2.的一些API,比如$watch和$set等。 2. Vue 3.移除了一些不常用的API和选项,需要注意代码是否使用了这些API和选项。 3. Vue 3.使用了Composition API,需要学习新的API和使用方式。 4. Vue 3.使用了新的模板编译器,需要使用新的编译器来编译模板。 5. Vue 3.使用了新的组件注册方式,需要使用新的方式来注册组件。 总之,升级Vue 2.项目Vue 3.需要仔细阅读官方文档,学习新的API和使用方式,同时需要对代码进行适当的修改和调整。 ### 回答2: 随着Vue 3.0的发布,许多Vue 2.0项目都想尝试升级到最新的版本以获得更好的开发体验和更快的性能。但是,Vue 3.0引入了一些重大的改变,因此升级可能需要一些准备和工作。以下是Vue 2.0项目升级到Vue 3.0时需要注意的几个方面: 1. 模板语法的变化: Vue 3.0放弃了类似于Vue 2.0的"mustache"语法,并引入了基于函数的编译器,推出了一个新的template标签。需要重写模板和指令,例如:v-for需要以in标志定义,v-bind需要替换为:。 2. 数据响应式系统的变化: Vue 3.0引入了一个更加强大的响应式系统,其包括reactive对象、ref对象和composition API等。在Vue 2.0使用的data和computed属性需要做出一些调整,转换成reactive对象。 3. 生命周期钩子函数的变化: Vue 3.0Vue 2.0相比生命周期钩子函数发生了一些变化,一些过时的生命周期钩子函数已被删除,需要使用setup()、onMounted等新函数替代替换。 4. 组件API的变化: Vue 3.0的组件API也发生了变化,例如$emit()改为emit()、$attrs、$listeners已被废弃等等。 5. TypeScript的支持: Vue 3.0引入了对TypeScript的更加完善的支持,组件和钩子函数等都可以使用TS类型的声明,为开发者提供了更好的开发体验。 6. 其他改变:Vue 3.0有一些其他改变,例如Composition API、Teleport、Fragment等,需要根据实际情况选择是否使用。 总结而言,Vue 2.0Vue 3.0的升级需要重新审视和修改整个项目,以适应更加快速和先进的Vue框架,但随之而来的是更大的弹性,更好的性能和更佳的类型支持。 ### 回答3: Vue 3.0Vue.js 框架的最新版本,与 Vue 2.0 相比,Vue 3.0 做了大量的修改和改进,包括性能优化、API 改进、TypeScript 辅助改进等方面。在升级 Vue 2.0 项目Vue 3.0 的过程,需要做一些必要的更改和优化。以下是一些需要注意的方面: 1. Vue 3.0 引入了新的 Composition API,是以函数为心的 API,可用于更好地组织和重用代码。在升级过程,需要将现有的基于 Options API 的代码转换为 Composition API。 2. Vue 3.0Vue 2.0 的响应式原理有所不同。在 3.0 ,提供了 reactive 和 ref 两个 API,代替了 Vue 2.0 的 data 和 computed。因此,升级需要重写组件的数据响应式部分。 3. 在模板编译方面,Vue 3.0 改进了编译器,提升了模板编译的速度和效率。升级需要更新编译器或使用新的编译选项。 4. Vue 3.0 删除了一些废弃的 API 和属性,升级时需要将相关代码替换为新的 API 或属性。 5. 在性能方面,Vue 3.0 采用了模块化架构,提升了性能和可维护性。升级后,可以在性能方面获取更好的体验。 总之,在升级 Vue 2.0 项目Vue 3.0 时,需要重写部分代码,更新依赖项和插件,以及根据新的开发规范和最佳实践进行优化。在升级前,需要详细了解升级过程、了解新的 API 和变化、选择合适的工具和方法,确保升级过程顺利完成,并且不会对项目产生其他影响。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值