2016-02-01 10 views
17

Ich erstelle ein npm-Paket und Webpack für Loader wie Babel, Eslint usw. verwenden. Allerdings bin ich unter der Annahme, dass final kompilierte Version des Pakets sollte nur dieses eine Modul enthalten, ohne webpackBootstrap.Erstellen npm-Paket mit Webpack

Meine aktuelle package, webpack config and source. Ich habe es ausgezogen, um es einfach "arbeiten" zu lassen.

Schritte Ich habe zu prüfen, ob es funktioniert:

npm install 
npm run build 
npm install -g . 
node 
var test = require('test-package'); 

Resultierende in diesem Fehler:

Error: Cannot find module 'test-package' 
    at Function.Module._resolveFilename (module.js:337:15) 
    at Function.Module._load (module.js:287:25) 
    at Module.require (module.js:366:17) 
    at require (module.js:385:17) 
    at repl:1:12 
    at REPLServer.defaultEval (repl.js:248:27) 
    at bound (domain.js:280:14) 
    at REPLServer.runBound [as eval] (domain.js:293:12) 
    at REPLServer.<anonymous> (repl.js:412:12) 
    at emitOne (events.js:82:20) 

Ich bin neu in webpack und npm so lassen Sie mich wissen, wenn Sie weitere Informationen benötigen, .

Antwort

11

Set output.libraryTarget zu umd. Dadurch erhalten Sie etwas, das von verschiedenen Modulsystemen (global, AMD, CommonJS) leicht zu konsumieren ist.

output.library ist ein weiteres nützliches Feld zu setzen. Dies sollte mit dem gewünschten Namen Ihrer Bibliothek übereinstimmen.


Es gab ein anderes Problem darüber hinaus. Damit der Import funktioniert, muss npm link benötigt werden. Diese Funktion ist während der Entwicklung sehr nützlich. Sie können einen Link durch npm unlink zurücksetzen.

+0

Während ich diese Änderungen hinzugefügt habe - das Paket funktioniert immer noch nicht. Ich habe die Frage mit einem Link zu abgespeckter Konfiguration/Quelle und Schritten aktualisiert, die ich nehme, um zu überprüfen, ob das Paket funktioniert/installierbar/verwendbar ist. –

+0

Basierend auf Fehler würde ich sagen, es könnte etwas npm bezogen sein. Warum nicht 'npm link' verwenden? Übrigens habe ich diese Art von Problemen bei meiner [Boilerplate] (https://github.com/survivejs/react-component-boilerplate) sortiert. Es tut viel für Sie, wenn Sie Zeit haben, seine Ansätze zu studieren. –

+0

Verwendung von npm Link war der Schlüssel .. Ich bin sehr neu in Javascript/nodejs, aber ich lerne schnell .. Wenn Sie Ihre Antwort mit dem npm Link Teil aktualisieren (zusätzlich zu den bereits bereitgestellten Konfigurationsinformationen), dann kann ich Ihre akzeptieren Antworten. Ich habe mir deinen Text angesehen. Es ist viel da, aber es sieht gut aus - ich werde es Schritt für Schritt durchgehen, nachdem ich mein erstes Paket fertiggestellt habe. –