Skip to content

2. Configurazione di un ambiente di sviluppo

Stiamo utilizzando l'ambiente di sviluppo descritto nel documento [2]:

  • Visual Studio Code (VSCode) per scrivere codice JavaScript;
  • [node.js] per eseguirlo;
  • [npm] per scaricare e installare le librerie JavaScript di cui avremo bisogno;

Creiamo un ambiente di lavoro in [VSCode]:

Image

  • Nei passaggi [1-5], apriamo una cartella [vuejs] vuota in [VSCode];

Image

  • Nei passaggi [8-10], installiamo la dipendenza [@vue/cli], che ci consentirà di inizializzare un progetto [Vue.js]. Questa dipendenza include un gran numero di pacchetti (diverse centinaia);

Nello stesso terminale, digitiamo quindi il comando [vue create .], che crea un progetto [Vue.js] nella directory corrente (.):

Image

  • In [13], inizia una serie di domande per configurare il progetto;

Image

  • Una volta che si è risposto a tutte le domande, vengono scaricati nuovi pacchetti e viene generato un progetto nella directory corrente [14].

Diamo un'occhiata a ciò che è stato generato. Il file [package.json] è il seguente:


{
  "name": "vuejs",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "serve": "vue-cli-service serve vuejs-20/main.js",
    "build": "vue-cli-service build vuejs-20/main.js",
    "lint": "vue-cli-service lint"
  },
  "dependencies": {
    "axios": "^0.19.0",
    "bootstrap": "^4.3.1",
    "bootstrap-vue": "^2.0.2",
    "core-js": "^2.6.5",
    "vue": "^2.6.10",
    "vue-router": "^3.1.3",
    "vuex": "^3.1.1"
  },
  "devDependencies": {
    "@vue/cli-plugin-babel": "^3.11.0",
    "@vue/cli-plugin-eslint": "^3.11.0",
    "@vue/cli-service": "^3.11.0",
    "babel-eslint": "^10.0.1",
    "eslint": "^5.16.0",
    "eslint-plugin-vue": "^5.0.0",
    "vue-template-compiler": "^2.6.10"
  },
  "eslintConfig": {
    "root": true,
    "env": {
      "node": true
    },
    "extends": [
      "plugin:vue/essential",
      "eslint:recommended"
    ],
    "rules": {},
    "parserOptions": {
      "parser": "babel-eslint"
    }
  },
  "postcss": {
    "plugins": {
      "autoprefixer": {}
    }
  },
  "browserslist": [
    "> 1%",
    "last 2 versions"
  ]
}

Commenti

  • righe 14–22: Tra le dipendenze necessarie per lo sviluppo, vediamo riferimenti ai due strumenti [eslint, babel] già utilizzati nei due capitoli precedenti. A questi si aggiungono i plugin per questi due strumenti destinati all'uso all'interno di [vue.js];
  • riga 34: il pacchetto [babel-eslint] gestirà la transpilazione da ES6 a ES5 del codice JavaScript;
  • righe 5–9: sono state create tre attività [npm]:
    • [build]: utilizzato per compilare la versione del progetto pronta per la produzione;
    • [serve]: esegue il progetto su un server web. Questo strumento viene utilizzato per eseguire test durante lo sviluppo. Come con [webpack-dev-server], la modifica del codice sorgente del progetto attiva automaticamente la ricompilazione del progetto e il ricaricamento da parte del server web;
    • [lint]: utilizzato per analizzare il codice JavaScript e generare report. In questa sede non utilizzeremo questo strumento;

È stato generato un file [README.md] con il seguente contenuto:


# vuejs
 
## Project setup
```
npm install
```
 
### Compiles and hot-reloads for development
```
npm run serve
```
 
### Compiles and minifies for production
```
npm run build
```
 
### Run your tests
```
npm run test
```
 
### Lints and fixes files
```
npm run lint
```
 
### Customize configuration
See [Configuration Reference](https://cli.vuejs.org/config/).

Questo file riassume i comandi da utilizzare per la gestione del progetto.

Sappiamo che in [VSCode] sono disponibili per l'esecuzione le attività [npm]:

Image

  • nei passaggi [1-3] si esegue il comando [serve], che compila e quindi esegue il progetto [4-5];

All'URL [http://localhost:8080], otteniamo la seguente pagina:

Image

Spiegheremo più avanti cosa ha portato a questa pagina.

Continuiamo a configurare il nostro ambiente di lavoro:

Image

  • nel punto [2] sopra, vediamo gli indicatori [git]. [git] è un sistema di controllo delle versioni del codice sorgente che consente di gestire le versioni successive del codice e di condividerle tra gli sviluppatori. Disattiveremo questo strumento per il progetto;
  • In [3-5], andiamo alle proprietà del progetto;

Image

  • in [9-10], disabilitiamo l'uso di [git] nel progetto;

Scriveremo vari test per dimostrare come funziona [vue.js]. Tuttavia, non vogliamo creare un nuovo progetto ogni volta, poiché ciò richiederebbe la generazione di una cartella [node_modules] ogni volta, e questa cartella ha una dimensione di diverse centinaia di megabyte. Rivediamo le attività [npm] nel file [package.json]:


  "scripts": {
    "serve": "vue-cli-service serve vuejs-00/main.js",
    "build": "vue-cli-service build vuejs-00/main.js",
    "lint": "vue-cli-service lint"
  },
  • riga 2: il comando [serve] utilizza per impostazione predefinita:
    • il file [public/index.html];
    • associato al file [src/main.js];

Alla riga 2, è possibile specificare il punto di ingresso del progetto per il comando [serve], ad esempio:


"serve": "vue-cli-service serve vuejs-00/main.js",

Proviamo:

Image

  • in [1], la cartella [src] è stata rinominata [vuejs-00];
  • In [2-3], il comando [serve] è stato modificato;
  • In [4-6], eseguiamo il progetto;

Otteniamo lo stesso risultato di prima:

Image

Per i nostri test, procederemo come segue:

  • scrivendo il codice in una cartella [vuejs-xx] all'interno del progetto;
  • testare questo progetto utilizzando il comando [vue-cli-service serve vuejs-xx/main.js] nel file [package.json];

Quando il server di sviluppo è in esecuzione, qualsiasi modifica apportata a uno dei file di progetto attiva una ricompilazione. Per questo motivo, disattiviamo la modalità [Salvataggio automatico] in [VSCode]. Infatti, non vogliamo che si verifichi una ricompilazione ogni volta che digitiamo dei caratteri in uno dei file di progetto. Desideriamo che la ricompilazione avvenga solo in determinati momenti:

Image

  • in [2], l'opzione [Salvataggio automatico] non deve essere selezionata;