NodeJS vereisen binnen logbestand

stemmen
60

Ik ben benieuwd hoe je regelmatig NodeJS module uit te laden node_modulesdirectory van binnenuit TypeScriptklasse.

Wanneer ik probeer te compileren .tsbestand bevat:

var sampleModule = require('modulename');

compiler vertelt me ​​dat ik niet kan gebruiken dat in deze omvang. (Die lijn is aan het begin van het bestand).

Is er een manier hoe om te laden en te gebruiken modules uit node_modulesbinnen TypeScriptde klas?

De vraag is gesteld op 05/10/2012 om 09:05
bron van user
In andere talen...                            


4 antwoorden

stemmen
77

Typescript zullen altijd klagen als het niet in staat om een symbool te vinden. De compiler wordt geleverd samen met een set van standaard definities voor window, documenten dergelijke gespecificeerd in een bestand genaamd lib.d.ts. Als ik een grep voor requirein dit bestand kan ik geen definitie van een functie te vinden require. Daarom moeten we de compiler vertellen onszelf dat deze functie zal bestaan op runtime met behulp van de declaresyntax:

declare function require(name:string);
var sampleModule = require('modulename');

Op mijn systeem, dit compileert prima.

antwoordde op 05/10/2012 om 09:26
bron van user

stemmen
30

De juiste syntax is:

import sampleModule = require('modulename');

of

import * as sampleModule from 'modulename';

Open daarna uw typoscript met --module commonjs.

Als het pakket komt niet met een index.d.tsbestand en het is package.jsonniet een hebben "typings"eigenschap, tscblaft dat het niet weet wat 'modulename'verwijst naar. Daarvoor moet je een vondst .d.tsbestand voor het op http://definitelytyped.org/ , of schrijf er zelf een.

Als u het schrijven van code voor Node.js zult u ook het gewenste node.d.tsbestand uit http://definitelytyped.org/ .

antwoordde op 03/02/2016 om 07:47
bron van user

stemmen
16

De beste oplossing is om een kopie van het type definities Node te krijgen. Dit zal allerlei afhankelijkheid problemen op te lossen, niet alleen require(). Dit werd eerder gedaan met behulp van pakketten zoals typings, maar als Mike Chamberlain vermeld, zijn typeringen afgekeurd. De moderne manier doet het als volgt uit:

npm install --save-dev @types/node

Niet alleen zal het vaststellen van de compiler fout, het zal ook de definities van de Node API toe te voegen aan uw IDE.

antwoordde op 18/10/2017 om 21:20
bron van user

stemmen
4

Gebruik typeringen voor toegang tot knooppunt functies van typoscript:

typings install env~node --global

Als u niet beschikt over typeringen installeren:

npm install typings --global
antwoordde op 29/12/2016 om 09:42
bron van user

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more