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/24 17:20] – [Aggiungere directory al deploy] niccolodoc:appunti:prog:nodejs [2025/03/27 11:58] (current) – [Automatizzare il deploy] niccolo
Line 35: Line 35:
 </code> </code>
  
-===== Il registry =====+===== Il registry (repository) =====
  
 Per sapere quale //registry// si sta utilizzando: Per sapere quale //registry// si sta utilizzando:
Line 132: Line 132:
 ==== Aggiungere directory al deploy ==== ==== Aggiungere directory al deploy ====
  
-Se ci sono dei file statici o intere directory da aggiungere al deploy, è possibile creare la cartella **public/**, nell'ambiente di sviluppo. Tutto il suo contenuto verrà incluso nella directory radice durante il **vite build** (cioè in **dist/**) e sarà anche compreso anche nel **publish** (FXIME verificare!).+Se ci sono dei file statici o intere directory da aggiungere al deploy, è possibile creare la cartella **public/**, nell'ambiente di sviluppo. Tutto il suo contenuto verrà incluso nella directory radice durante il **vite build** (cioè in **dist/**).
  
 Durante il test e lo sviluppo (ambiente attivato da **npm start**), i file contenuti in **public/** devono essere linkati senza il prefisso ''public'', ma con il percorso che avranno nel build. Ad esempio per creare un VectorLayer dal file ''public/aeroporto/sesto_fiorentino.kml'': Durante il test e lo sviluppo (ambiente attivato da **npm start**), i file contenuti in **public/** devono essere linkati senza il prefisso ''public'', ma con il percorso che avranno nel build. Ad esempio per creare un VectorLayer dal file ''public/aeroporto/sesto_fiorentino.kml'':
Line 142: Line 142:
 }); });
 </code> </code>
 +
 +==== Rinominare il file 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 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 ====
 +
 +Nel nostro file **package.json** si trova:
 +
 +<code>
 +"dependencies": {
 +  "ol": "latest"
 +}
 +</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 =====
  
   * **[[https://openlayers.org/doc/quickstart.html]]**   * **[[https://openlayers.org/doc/quickstart.html]]**
  
doc/appunti/prog/nodejs.1742833205.txt.gz · Last modified: 2025/03/24 17:20 by niccolo