首页 > 其他分享 >Vite | package.json之script配置多模式

Vite | package.json之script配置多模式

时间:2023-05-03 22:14:10浏览次数:39  
标签:npm run package -- script json 构建 build vite

package.json 是一个常用的配置文件,用于描述你的 JavaScript 项目。其中,scripts 字段可以用来定义一组命令,用于开发、构建、测试和部署你的应用程序。下面是一些常用的命令和配置方式:

开发

  • dev:用于启动本地开发服务器。例如:

    "scripts": {
      "dev": "vite"
    }
    

    在上述配置中,dev 命令使用 Vite 来启动本地开发服务器。

构建

  • build:用于构建生产环境代码。例如:

    "scripts": {
      "build": "vite build"
    }
    

    在上述配置中,build 命令使用 Vite 来构建生产环境代码。

测试

  • test:用于运行测试。例如:

    "scripts": {
      "test": "jest"
    }
    

    在上述配置中,test 命令使用 Jest 来运行测试用例。

部署

  • deploy:用于将应用程序部署到生产环境。例如:

    "scripts": {
      "deploy": "npm run build && now --prod"
    }
    

    在上述配置中,deploy 命令首先运行 npm run build 命令来构建生产环境代码,然后使用 Now 将应用程序部署到生产环境。

另外,你还可以将多个命令组合在一个脚本中。例如:

"scripts": {
  "build-and-deploy": "npm run build && npm run deploy"
}

在上述配置中,build-and-deploy 命令会先运行 npm run build 命令来构建生产环境代码,然后再运行 npm run deploy 命令将应用程序部署到生产环境。

需要注意的是,当你在执行这些命令时,你可以在命令行中传入参数和选项,例如:

npm run build -- --mode production

这样可以将 --mode production 选项传递给构建命令。

如果 package.json 中的 "build": "vite build" 没有指定 --mode 参数,则 Vite 会默认使用 production 模式进行构建。

production 模式下,Vite 会进行一系列的优化,例如支持 tree-shaking、将 CSS 提取到单独的文件中、压缩代码和图片等,并且启用了 Safari 和 Firefox 的 Source Map。

也可以通过在 vite.config.js 中使用 define: { 'process.env.NODE_ENV': 'production' } 来强制将 process.env.NODE_ENV 设置为 'production',以便在代码中运行时检测到当前环境是生产模式。

export default {
  define: {
    'process.env.NODE_ENV': 'production'
  }
}

这样可以在构建时将 process.env.NODE_ENV 内嵌到代码中,加快执行速度并减少代码量。

示例:定义多个不同的生产模式,并在构建命令中通过 --mode 选项来指定要使用的模式。

package.json 的构建命令中指定要使用的模式:

{
  "scripts": {
    "dev-prod": "vite --mode development",
    "dev-aliyun": "vite --mode aliyun",
    "build-prod": "vite build --mode production",
    "preview": "vite preview"
  }
}

执行npm run dev-aliyun

在上述代码中,你可以使用 npm run build-prod 来构建生产模式的代码,使用 npm run build-aliyun 来构建阿里云的代码。

需要注意的是,不同的生产模式可以定义不同的选项,你可以根据需要来定义不同的模式。同时,你还需要为每个模式指定一个唯一的名称。

标签:npm,run,package,--,script,json,构建,build,vite
From: https://www.cnblogs.com/echohye/p/17369762.html

相关文章

  • typescript基本语法
    TypeScript是JavaScript的一个超集,为JavaScript添加了类型、接口、泛型、类、模块等新的特性。以下是TypeScript一些基本语法:变量声明在TypeScript中使用let、const、var关键字来声明变量,使用冒号+类型来指定变量的类型,例如:letcount:number=10;constname:string='Tom'......
  • TypeScript 面试题
    一、TypeScript是什么?JavaScript是一种解释型的脚本语言,基于对象,跨平台的特性,活跃于各大网站制作中。而TypeScript则是以JavaScript作为基础,并对其扩展的一种新的语言, 二、TypeScript的内置数据类型有哪些?数字类型:用于表示数字类型的值。TypeScript中的所有数字都存储为浮......
  • TypeScript 基础语法以及注意事项
    TypeScript(简称TS)是一种由Microsoft开发的静态类型检查器,它在JavaScript的基础上添加了强类型和其他一些特性。以下是TS的一些基本语法和注意事项:变量声明 在TS中,变量声明时需要指定其类型,例如:这样就声明了一个名为myString的字符串变量,并将其赋值为"Hello,TypeScript!"......
  • python学习笔记8(json数据格式、pycharts简单折线图)
    1.jsonjson是一种轻量级的数据交互格式,可以以json指定的格式去组织和封装数据;json本质上是一个带有特定格式的字符串;json负责不同编程语言中的数据传递和交互;1.1python数据与json数据相互转化引入json模块importjson1.1.1python数据转json数据importjson#python列表......
  • Linux shell script shebang env All In One
    LinuxshellscriptshebangenvAllInOne指定shellscript的运行环境shellscriptshebangenvhashbangenv#!\usr\bin\envbash❌#!\usr\bin\envbash#❌#!/usr/bin/env✅#!/usr/bin/envbash✅demos#!/usr/bin/envbash#✅exportN=1#case1......
  • Linux shell script switch...case All In One
    Linuxshellscriptswitch...caseAllInOnecase...in...esaccase...esac为多选择语句,与其他语言中的switch...case语句类似,是一种多分支选择结构;每个case分支用右圆括号开始,用两个分号;;表示break,即执行结束,跳出整个case...esac语句,esac(就是case反过......
  • 数据交换格式:XML、JSON
    XMLXML是什么可扩展标记语言(XML)是存储和交换数据的重要方法。它文档的形式类似于HTML,不过比HTML低级,都是标签里放内容。XML只包含少量的预定义标签,其他都由程序员来定义,只要数据的读者和编写者都知道标签的含义,标签就可以包含任何设计者希望的有用信息。XML的标签有单双,双标签包......
  • python 合并json
    importjson#foriinrange(800):f1=open('.\\'+str(0)+'.txt',"r")data1=f1.read()dic_str2=json.loads(str(data1).replace("'","\""))foriinrange(1,50):f=open('.\\'+......
  • typescript重写canvas --7.利用clip在指定区域绘图
    typescript重写canvas--7.利用clip在指定区域绘图1.使用canvas利用clip在指定区域绘图<!DOCTYPEHTML><html><head><metacharset="utf-8"/></head><body><canvasid="myCanvas"width="250"height="200......
  • 简单总结JavaScript中的微任务和宏任务
    在JavaScript中,任务被分为宏任务和微任务。宏任务:常见的宏任务有setTimeout、setInterval、I/O、UI渲染等等。这些任务都是由浏览器或Node.js中的事件循环调度执行的,它们会被放入一个任务队列(taskqueue)中,等待执行。微任务:常见的微任务有Promise、MutationObserver等。......