Node.js
Använda Browserfiy för att lösa "obligatoriskt" fel med webbläsare
Sök…
Exempel - file.js
I det här exemplet har vi en fil som heter file.js.
Låt oss anta att du måste analysera en URL med hjälp av JavaScript och NodeJS frågestrengsmodul.
För att göra detta behöver du bara sätta in följande uttalande i din fil:
const querystring = require('querystring');
var ref = querystring.parse("foo=bar&abc=xyz&abc=123");
Vad gör det här utdraget?
Tja, först skapar vi en frågestrengsmodul som tillhandahåller verktyg för att analysera och formatera URL-frågesträngar. Det kan nås med:
const querystring = require('querystring');
Sedan analyserar vi en URL med metoden .parse (). Den analyserar en URL-frågesträng (str) i en samling nyckel- och värdepar.
Till exempel delas frågesträngen 'foo=bar&abc=xyz&abc=123'
in i:
{ foo: 'bar', abc: ['xyz', '123'] }
Tyvärr har webbläsare inte kravmetoden definierad, men Node.js gör det.
Installera Browserfy
Med Browserify kan du skriva kod som använder kräver på samma sätt som du skulle använda den i Node. Så, hur löser du detta? Det är enkelt.
- Installera först noden, som levereras med npm. Gör sedan:
npm installera -g browserify
- Ändra till katalogen som din file.js är i och installera vår frågestrengsmodul med npm:
npm installera frågesträng
Obs! Om du inte ändrar i den specifika katalogen misslyckas kommandot eftersom det inte kan hitta filen som innehåller modulen.
- Paketera nu rekursivt alla nödvändiga moduler som börjar på file.js i en enda fil som heter bundle.js (eller vad du än vill namnge det) med kommandot browserify :
browserify file.js -o bundle.js
Browserify analyserar Abstract Syntax Tree för krävande () samtal för att korsa hela beroendegrafiken för din
- SlutligenDropa en enda tagg i din html så är du klar!
<script src="bundle.js"></script>
Vad som händer är att du får en kombination av din gamla .js-fil ( file.js som är) och din nyskapade bundle.js- fil. Dessa två filer slås samman till en enda fil.
Viktig
Kom ihåg att om du vill göra några ändringar i file.js och inte kommer att påverka ditt program. Dina ändringar träder i kraft endast om du redigerar den nyligen skapade bundle.js
Vad betyder det?
Detta innebär att om du vill redigera file.js av några skäl kommer ändringarna inte att ha några effekter. Du måste verkligen redigera bundle.js eftersom det är en sammanslagning av bundle.js och file.js.