Maison interface Web js tutoriel Explication détaillée des étapes de packaging du projet Vue par environnement

Explication détaillée des étapes de packaging du projet Vue par environnement

Apr 20, 2018 pm 02:03 PM
打包 环境 详解

Cette fois, je vais vous apporter une explication détaillée des étapes de packaging du projet Vue par environnement. Quelles sont les précautions pour packaging le projet Vue par environnement. Ce qui suit est un cas pratique, prenons. un regard.

Dans le développement de projets, nos projets sont généralement divisés en version de développement, version de test, version pré et version Prod. Les environnements par défaut de Vue-cli sont uniquement dev et prod. Dans le passé, chaque fois que je voulais publier une version de test ou une version Pre, je devais modifier l'adresse API dans le code source puis la packager, ce qui était très gênant. . Ce serait parfait s'il pouvait être conditionné en fonction de différents environnements. J'ai collecté beaucoup d'informations sur Internet, et maintenant je peux packager le programme en fonction de l'environnement. Quant à savoir comment le faire, restons et voyons.

Étape 1 : Installercross-env

Exécutez la commande suivante dans le répertoire du projet pour installer cross-env , Mon IDE est webstorm. Il doit être exécuté directement dans la fenêtre Terminal de l'IDE. Il est également possible de localiser le répertoire racine du projet via le CMD de Windows ou le Terminal de Linux et d'exécuter la commande suivante.

npm i --save-dev cross-env

Étape 2 : Modifier les paramètres dans chaque environnement

Ajouter un test dans le répertoire config/ . env.js, pré.env.js. Modifiez le contenu dans prod.env.js. Le contenu modifié est le suivant :

'use strict'
module.exports = {
 NODE_ENV: '"production"',
 EVN_CONFIG:'"prod"',
 API_ROOT:'"/apis/v1"'
}
Copier après la connexion

Modifiez le contenu des fichiers test.env.js et pre.env.js respectivement. suit :

'use strict'
module.exports = {
 NODE_ENV: '"testing"',
 EVN_CONFIG:'"test"',
 API_ROOT:'"/test/apis/train"'
}
'use strict'
module.exports = {
 NODE_ENV: '"presentation"',
 EVN_CONFIG:'"pre"',
 API_ROOT:'"/pre/apis/train"'
}
Copier après la connexion

Modifiez le contenu du fichier dev.env.js Le contenu modifié est le suivant. Le proxy de service est configuré dans l'environnement de développement et l'API avant API_ROOT est l'adresse du proxy configurée.

module.exports = merge(prodEnv, {
 NODE_ENV: '"development"',
 VN_CONFIG: '"dev"',
 API_ROOT: '"api/apis/v1"'
})
Copier après la connexion

Étape 3 : Modifier le fichier package.json du projet

Personnalisez le contenu des scripts dans le fichier package.json et ajoutez le Les paramètres du processus de conditionnement de plusieurs environnements nouvellement définis sont cohérents avec les ajustements précédents.

"scripts": {
  "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
  "start": "npm run dev",
  "build": "node build/build.js",
  "build:test": "cross-env NODE_ENV=production env_config=test node build/build.js",
  "build:pre": "cross-env NODE_ENV=production env_config=pre node build/build.js",
  "build:prod": "cross-env NODE_ENV=production env_config=prod node build/build.js"
 },
Copier après la connexion

Ici, il est préférable de définir NODE_ENV sur production, car un seul jugement de production est effectué dans utils.js, et les tests personnels n'affecteront pas les paramètres API de chaque environnement. ##Étape 4 : Modifier config/index.js

Modifier les paramètres de build dans le fichier config/index.js Les paramètres ici seront utilisés dans build/webpackage.prod.conf.js

<.>
build:{
  // Template for index.html
  // 添加test pre prod 三处环境的配制
  prodEnv: require('./prod.env'),
  preEnv: require('./pre.env'),
  testEnv: require('./test.env'),
  //下面为原本的内容,不需要做任何个性
  index:path.resolve(dirname,'../dist/index.html'),
Copier après la connexion

Étape 5 : Utilisez les paramètres de l'environnement de construction

dans webpackage.prod.conf.js pour construire/webpackage.prod.conf.js Modifier le fichier et ajustez la façon dont les constantes d'environnement sont générées.

// 个性env常量的定义
// const env = require('../config/prod.env')
const env = config.build[process.env.env_config+'Env']
Copier après la connexion

Étape 6 : Ajuster build/build.js

Supprimer l'affectation de process.env.NODE_ENV et modifier la définition de spinner , le contenu ajusté est le suivant :

'use strict'
require('./check-versions')()
// 注释掉的代码
// process.env.NODE_ENV = 'production'
const ora = require('ora')
const rm = require('rimraf')
const path = require('path')
const chalk = require('chalk')
const webpack = require('webpack')
const config = require('../config')
const webpackConfig = require('./webpack.prod.conf')
// 修改spinner的定义
// const spinner = ora('building for production...')
var spinner = ora('building for ' + process.env.NODE_ENV + ' of ' + process.env.env_config+ ' mode...' )
spinner.start()
//更多的其它内容,不需要做任何调整的内容 ...
Copier après la connexion

Supplémentaire :

Comment vue2+webpack est empaqueté par environnement

Cette année, j'ai eu l'opportunité de travailler sur un projet d'application monopage vue2. J'ai traversé deux environnements du développement au lancement. J'exécute npm run build à la fois dans l'environnement de test et dans l'environnement officiel. Les variables de ces deux environnements sont actuellement différentes. Il semble un peu gênant de changer les variables à chaque fois lors du packaging. Plus tard, j'ai fait référence à mes collègues. Dans leurs projets, ils exécutaient différentes commandes selon l'environnement et obtenaient différents packages. Par exemple, l'environnement de test npm run test, l'environnement formel npm run build.

Doit être configuré dans le fichier config/prod.env.js

const target = process.env.npm_lifecycle_event;
  if (target == 'test') {
  //测试
  var obj = {
  NODE_ENV: '"production"',
  //post用当前域名
  API_ROOT: '""',
  //数据字典
  API_ROOT_DICT:'"http://test.gw.fdc.com.cn"',
  }
}else {
  //线上
  var obj = {
  NODE_ENV: '"production"',
  //post用当前域名
  API_ROOT: '""',
  //数据字典
  API_ROOT_DICT:'"http://gw.fdc.com.cn"',
  }
}
module.exports = obj;
Copier après la connexion
npm fournit une variable npm_lifecycle_event pour renvoyer le nom du script en cours d'exécution, tel que pretest, test, post-test, etc. Par conséquent, vous pouvez utiliser cette variable pour écrire du code pour différentes commandes de scripts npm dans le même fichier de script.

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

Cas d'utilisation de Vuex dans React

Utilisation des instructions intégrées de Vue

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Impossible de démarrer dans l'environnement de récupération Windows Impossible de démarrer dans l'environnement de récupération Windows Feb 19, 2024 pm 11:12 PM

L'environnement de récupération Windows (WinRE) est un environnement utilisé pour réparer les erreurs du système d'exploitation Windows. Après avoir entré WinRE, vous pouvez effectuer une restauration du système, une réinitialisation d'usine, désinstaller les mises à jour, etc. Si vous ne parvenez pas à démarrer WinRE, cet article vous guidera à travers les correctifs pour résoudre le problème. Impossible de démarrer dans l'environnement de récupération Windows Si vous ne pouvez pas démarrer dans l'environnement de récupération Windows, utilisez les correctifs fournis ci-dessous : Vérifiez l'état de l'environnement de récupération Windows Utilisez d'autres méthodes pour accéder à l'environnement de récupération Windows Avez-vous accidentellement supprimé la partition de récupération Windows ? Effectuez une mise à niveau sur place ou une nouvelle installation de Windows ci-dessous, nous avons expliqué tous ces correctifs en détail. 1] Vérifiez le Wi-Fi

Explication détaillée de l'obtention des droits d'administrateur dans Win11 Explication détaillée de l'obtention des droits d'administrateur dans Win11 Mar 08, 2024 pm 03:06 PM

Le système d'exploitation Windows est l'un des systèmes d'exploitation les plus populaires au monde et sa nouvelle version Win11 a beaucoup attiré l'attention. Dans le système Win11, l'obtention des droits d'administrateur est une opération importante. Les droits d'administrateur permettent aux utilisateurs d'effectuer davantage d'opérations et de paramètres sur le système. Cet article présentera en détail comment obtenir les autorisations d'administrateur dans le système Win11 et comment gérer efficacement les autorisations. Dans le système Win11, les droits d'administrateur sont divisés en deux types : administrateur local et administrateur de domaine. Un administrateur local dispose de tous les droits d'administration sur l'ordinateur local

Explication détaillée du fonctionnement de la division dans Oracle SQL Explication détaillée du fonctionnement de la division dans Oracle SQL Mar 10, 2024 am 09:51 AM

Explication détaillée de l'opération de division dans OracleSQL Dans OracleSQL, l'opération de division est une opération mathématique courante et importante, utilisée pour calculer le résultat de la division de deux nombres. La division est souvent utilisée dans les requêtes de bases de données. Comprendre le fonctionnement de la division et son utilisation dans OracleSQL est donc l'une des compétences essentielles des développeurs de bases de données. Cet article discutera en détail des connaissances pertinentes sur les opérations de division dans OracleSQL et fournira des exemples de code spécifiques pour référence aux lecteurs. 1. Opération de division dans OracleSQL

Explication détaillée du rôle et de l'utilisation de l'opérateur modulo PHP Explication détaillée du rôle et de l'utilisation de l'opérateur modulo PHP Mar 19, 2024 pm 04:33 PM

L'opérateur modulo (%) en PHP est utilisé pour obtenir le reste de la division de deux nombres. Dans cet article, nous discuterons en détail du rôle et de l'utilisation de l'opérateur modulo et fournirons des exemples de code spécifiques pour aider les lecteurs à mieux comprendre. 1. Le rôle de l'opérateur modulo En mathématiques, lorsqu'on divise un entier par un autre entier, on obtient un quotient et un reste. Par exemple, lorsque l’on divise 10 par 3, le quotient est 3 et le reste est 1. L'opérateur modulo est utilisé pour obtenir ce reste. 2. Utilisation de l'opérateur modulo En PHP, utilisez le symbole % pour représenter le module

Explication détaillée de la fonction d'appel système Linux system() Explication détaillée de la fonction d'appel système Linux system() Feb 22, 2024 pm 08:21 PM

Explication détaillée de la fonction d'appel système Linux system() L'appel système est une partie très importante du système d'exploitation Linux. Il fournit un moyen d'interagir avec le noyau système. Parmi elles, la fonction system() est l’une des fonctions d’appel système couramment utilisées. Cet article présentera en détail l’utilisation de la fonction system() et fournira des exemples de code correspondants. Concepts de base des appels système Les appels système sont un moyen permettant aux programmes utilisateur d'interagir avec le noyau du système d'exploitation. Les programmes utilisateur demandent au système d'exploitation en appelant des fonctions d'appel système

Explication détaillée des fonctions VSCode : Comment cela vous aide-t-il à améliorer l'efficacité du travail ? Explication détaillée des fonctions VSCode : Comment cela vous aide-t-il à améliorer l'efficacité du travail ? Mar 25, 2024 pm 05:27 PM

Explication détaillée des fonctions VSCode : Comment cela vous aide-t-il à améliorer l'efficacité du travail ? Avec le développement continu de l'industrie du développement de logiciels, la recherche par les développeurs de l'efficacité du travail et de la qualité du code est devenue un objectif important dans leur travail. Dans ce processus, le choix de l’éditeur de code devient une décision cruciale. Parmi les nombreux éditeurs, Visual Studio Code (VSCode en abrégé) est apprécié par la majorité des développeurs pour ses fonctions puissantes et son évolutivité flexible. Cet article présentera en détail certaines fonctions de VSCode et discutera

Explication détaillée de la commande Linux curl Explication détaillée de la commande Linux curl Feb 21, 2024 pm 10:33 PM

Explication détaillée de la commande curl de Linux Résumé : curl est un puissant outil de ligne de commande utilisé pour la communication de données avec le serveur. Cet article présentera l'utilisation de base de la commande curl et fournira des exemples de code réels pour aider les lecteurs à mieux comprendre et appliquer la commande. 1. Qu’est-ce que la boucle ? curl est un outil de ligne de commande utilisé pour envoyer et recevoir diverses requêtes réseau. Il prend en charge plusieurs protocoles, tels que HTTP, FTP, TELNET, etc., et fournit des fonctions riches, telles que le téléchargement de fichiers, le téléchargement de fichiers, la transmission de données, le proxy.

Déclaration d'indépendance des applications Python : le chemin vers la liberté de PyInstaller Déclaration d'indépendance des applications Python : le chemin vers la liberté de PyInstaller Feb 20, 2024 am 09:27 AM

PyInstaller : Indépendance des applications Python PyInstaller est un outil de packaging Python open source qui regroupe les applications Python et leurs dépendances dans un fichier exécutable indépendant. Ce processus élimine la dépendance à l'égard de l'interpréteur Python tout en permettant aux applications de s'exécuter sur diverses plates-formes, notamment Windows, MacOS et Linux. Processus de packaging Le processus de packaging de PyInstaller est relativement simple et implique les étapes suivantes : L'option pipinstallpyinstallerpyinstaller--onefile--windowedmain.py--onefile crée un seul fichier.

See all articles