2017-11-18 3 views
0

Ich komme von Babel zu Typescript und ich habe Schwierigkeiten, ein Modul von node_modules zu importieren. Die resultierende .js Build enthält nicht den Code der von dem Modul, das ich importiere ... in diesem Fall browser-cookies.Nicht möglich, npm-Module in TypeScript zu verwenden

Ich installierte das Paket mit Garn: yarn add browser-cookies. Ich versuche dann in main.ts zu importieren wie so:

const cookies = require('browser-cookies'); 

(function() { 
    document.forms['number-generator'].addEventListener('submit', (ev) => { 
    ev.preventDefault(); 

    if(!cookies.get('ab')) { 
     cookies.set('ab', 'true', { expires: 1 }); 
    } 
    }) 
})(); 

Meine package.json Datei unter:

{ 
    "name": "lucky-lotto-lander", 
    "version": "1.0.0", 
    "main": "index.js", 
    "license": "MIT", 
    "scripts": { 
    "build": "tsc src/app.ts --outFile dist/app.js --module amd --watch" 
    }, 
    "dependencies": { 
    "@types/node": "^8.0.53", 
    "browser-cookies": "^1.1.0", 
    "copyfiles": "^1.2.0" 
    } 
} 

Das resultierende main.js Build sieht wie folgt aus:

var cookies = require('browser-cookies'); 
(function() { 
    document.forms['number-generator'].addEventListener('submit', function (ev) { 
     ev.preventDefault(); 
     if (!cookies.get('ab')) { 
      cookies.set('ab', 'true', { expires: 1 }); 
     } 
    }); 
})(); 

Wie kann ich das bekommen notwendig browser-cookies Code in den Build gebündelt werden?

Antwort

3

TypeScript alleine bündelt nicht (vergleiche es mit Babel, das auch nur transpiliert, nicht bündelt).

Sie benötigen einen Modulbündler wie Webpack, um alles zu einem Paket zusammenzufassen.

+0

Das macht Sinn. Aus irgendeinem Grund nahm ich an, dass es auch Bündel gibt. Ich benutze Webpack wie bei Babel. Vielen Dank. – BugHunterUK

Verwandte Themen