User Tools

Site Tools


doc:appunti:prog:nodejs

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:appunti:prog:nodejs [2025/03/27 09:29] – [Dipendenze del progetto] niccolodoc:appunti:prog:nodejs [2025/03/27 11:58] (current) – [Automatizzare il deploy] niccolo
Line 147: Line 147:
 Potrebbe capitare il caso in cui il progetto in questione deve essere inserito in un sito già esistente, eventualmente in una sottodirectory e con un nome della pagina iniziale diverso da **index.html**. Potrebbe capitare il caso in cui il progetto in questione deve essere inserito in un sito già esistente, eventualmente in una sottodirectory e con un nome della pagina iniziale diverso da **index.html**.
  
-Nei paragrafi sopra si è già visto come generare link relativi, per modificare il nome del file index.html ... FIXME+Nei paragrafi sopra si è già visto come generare link relativi. Per modificare il nome del file index.html si deve anzitutto modificare **vite.config.js** definendo //build// => //rollupOptions// => //input// => //main// necessario per eseguire il corretto build e //server// => //open// per eseguire correttamente il server in fase di sviluppo: 
 + 
 +<code> 
 +export default { 
 +  build: { 
 +    sourcemap: true, 
 +    rollupOptions:
 +      input: { 
 +        main: 'my-index.html' // The entry file. 
 +      } 
 +    } 
 +  }, 
 +  server: { 
 +    open: '/my-index.html' // Entry file for the dev server. 
 +  } 
 +
 +</code> 
 + 
 + 
 +Anche il file **package.json** va modificando nella sezione //scripts// => //dev// aggiungendo l'opzione **%%--open%%** al comando ''vite'': 
 + 
 +<code> 
 +
 +  "name": "openlayers-test", 
 +  "version": "1.0.4", 
 +  "scripts":
 +    "dev": "vite --open my-index.html", 
 +    ... 
 +</code>
  
  
 ==== Dipendenze del progetto ==== ==== Dipendenze del progetto ====
  
-Nel file **package.json** si trova ad esempio:+Nel nostro file **package.json** si trova:
  
 <code> <code>
Line 160: Line 188:
 </code> </code>
  
 +Cioè il progetto dipende dalla versione più recente di **create-ol**. Si tratta di un initializer che //Scaffolds an OpenLoader plugin with massive customization//. Durante il **create** iniziale è stata installata la versione **create-ol@1.0.1**
 +
 +In generale non avviene un aggiornamento automatico, a meno che non venga eseguito uno dei seguenti comandi:
 +
 +<code>
 +npm update <package-name>
 +npm install <package-name>@latest
 +npm update
 +</code>
 +
 +Volendo è possibile modificare il file **package.json** e indicare una versione specifica:
 +
 +<code>
 +"dependencies": {
 +  "ol": "1.0.1"
 +}
 +</code>
 +
 +Il numero di versione può essere preceduto da caratteri speciali,ad esempio **%%^X.Y.Z%%** oppure **%%~X.Y.Z%%**. Nel primo caso sono consentiti aggiornamenti mantenendo ferma la //major version// X (eccezione se X vale 0: allora sono consentiti aggiornamenti solo di //patch version//). Nel secondo caso sono consentiti solo aggiornamenti di //patch version// Z, mentre //major// e //minor version// devono restare uguali.
 +
 +==== Il file package-lock.json ====
 +
 +Nella directory del progetto si trova il file **package-lock.json** che viene creato e aggiornato ogni volta che si installa o si aggiorna un pacchetto (''npm install'', ''npm update''). Nel nostro caso l'install è stata diretta conseguenza del ''npm create''. Il file **non deve essere modificato** a mano, eventualmente lo si può eliminare insieme alla directory ''node_modules/'' ed eseguendo di nuovo ''npm install'' viene creato ex-novo, così come il download dei pacchetti.
 +
 +Nel file **package-lock.json** si vede la dipendenza dai vari packages, tra cui la libreria OpenLayers:
 +
 +<code>
 +{
 +  "name": "ol-vite",
 +  "version": "1.0.0",
 +  "lockfileVersion": 3,
 +  "requires": true,
 +  "packages": {
 +    ...
 +        },
 +    "node_modules/ol": {
 +      "version": "10.4.0",
 +      "resolved": "https://registry.npmjs.org/ol/-/ol-10.4.0.tgz",
 +      ...
 +}
 +</code>
 +
 +Il tutto è stato scaricato nella directory di lavoro **node_modules/**, per cui è importante mantenere copia di questa directory di lavoro che in pratica contiene il codice sorgente delle varie componenti scaricato al momento del //create//.
 +
 +===== Automatizzare il deploy =====
 +
 +È possibile definire il comando per effettuare il deploy del progetto aggiungendo a **package.json** uno //scripts// => //deploy//:
 +
 +<code>
 +"scripts": {
 +  "deploy": "rsync -avz ./dist/ ./ user@yourserver:/path/to/project"
 +}
 +</code>
 +
 +Il deploy quindi si esegue con
 +
 +<code>
 +npm run deploy
 +</code>
  
 ===== Web References ===== ===== Web References =====
doc/appunti/prog/nodejs.1743064189.txt.gz · Last modified: 2025/03/27 09:29 by niccolo