2015-06-30 15 views
10

Ich versuche, Polymer in einem neuen Projekt zu verwenden, und versuchte Bower zugunsten von NPM für Front-End-Abhängigkeitsverwaltung zu vermeiden.Kann ich Polymer (1.0) mit NPM installieren?

Die Seite getting started enthält Anweisungen zur Verwendung von Bower (und Verwendung einer .zip-Datei usw.), aber keine Erwähnung von NPM.

Ich habe NPM verwendet, indem ich direkt auf ein GitHub Repo vor zeigte, aber ich kann nicht scheinen, dass dies für Polymer funktioniert.

Als ich laufen diese:

npm install [email protected]:Polymer/polymer.git#v1.0.5 

ich diesen Fehler:

npm ERR! notarget No compatible version found: [email protected]'github.com:Polymer/polymer.git'

npm ERR! notarget Valid install targets:

npm ERR! notarget ["0.1.0","0.1.1","0.1.2","0.1.3","0.1.4","0.1.5"]

Gibt es etwas, was ich bin fehlt, oder muss ich die Kugel und Verwendung beißen Laube?

+0

Volle Unterstützung für Polymer in NPM kommt bald: https://github.com/Polymer/polymer/Ausgaben/326. Es wird aktiv daran gearbeitet. – Splaktar

Antwort

14

Seit den früheren Antworten hat Polymer jetzt tatsächlich become available auf NPM. Um es zu installieren:

npm i Polymer 

Beachten Sie, dass es die Sammlung der Standardelemente nicht enthält; diese können here finden:

npm i npm-polymer-elements 

Sie dann in Ihrem HTML können sein:

<!-- for custom elements --> 
<link rel="import" href="/node_modules/@polymer/polymer/polymer.html"/> 
<!-- for standard elements --> 
<link rel="import" href="/node_modules/paper-button/paper-button.html"/> 
<paper-button>click</paper-button> 

Leider Polymer durch webpack derzeit doesn't seem possible yet Laden, was bedeutet, wenn Ihr node_modules (oder bower_components) Ordner ist nicht in an einem öffentlich zugänglichen Ort, möchten Sie vielleicht eine Grunt/Gulp-Aufgabe machen, um sie für zukünftige Updates zu kopieren ...

+6

Anstatt das 'npm-polymer-elements'-Paket zu verwenden, können Sie auch individuelle Pakete für jedes Element erhalten, das vom Benutzerkonto des offiziellen Projekts verwaltet wird: https://www.npmjs.com/~polymer Zum Beispiel können Sie Get '@ Polymer/Papier-Taste' oder' @ Polymer/Eisen-Flex-Layout' – Xharlie

+2

Diese Antwort ist meistens korrekt, aber ich lief in Schwierigkeiten mit 'npm i @ Polymer/Polymer' ... 'npm i Polymer' (beachten Sie das Kapital "P") scheint jedoch gut zu funktionieren. – Charlie

+0

@Charlie: danke, aktualisiert! – Tycho

5

EDIT 2016.10.25 Das Team Polymer kündigte am Polymer Summit 2016, dass sie in suchen npm über yarn unterstützen.

[sudo] npm install -g yarn yarn add Polymer yarn install --flat

OLD awnser

Es gibt derzeit keine Möglichkeit Ich kenne Polymer mit NPM zum Laufen zu bekommen.

Polymer soll mit Bower arbeiten. Alle Abhängigkeiten eines Polymers, die in https://github.com/Polymer/polymer/blob/master/bower.json wie webcomponentsjs deklariert sind, werden nicht heruntergeladen. Wenn Sie nicht jede Abhängigkeit manuell herunterladen möchten, sollten Sie Bower verwenden.

+0

Haben Sie eine Idee, ob das etwas ist, was sie in Zukunft zur Verfügung stellen wollen? Vielleicht für NPM3? –

+1

Nein, ich denke nicht. Bower wurde entwickelt, um Abhängigkeiten für Web-Anwendungen zu verwalten, und NPM, das zum Verwalten von Abhängigkeiten für Knotenanwendungen erstellt wurde, hat keinen Sinn. – synk

+8

Ehh ... mehr und mehr Menschen verlassen Bower für Front-End-Abhängigkeitsmanagement zugunsten von NPM. Sieh dir diesen NPM-Blog-Eintrag an (http://blog.npmjs.org/post/101775448305/npm-and-front-end-packaging), [diesen Artikel im Medium] (https://medium.com/@nickheiner.com)/why-my-team-nutzt-npm-statt-von-bower-eecfe1b9afcb) und [dieses Bower GitHub * -Ausgabe *] (https://github.com/bower/bower/issues/1520). Ich persönlich habe den Wechsel vor Monaten gemacht und zögere sehr, zurückzugehen. Wenn NPM3 herauskommt, sollte es wirklich den Nagel in den Sarg legen. –

-13

Versuchen Sie die Installation bower Methode!

"npm install -g bower" 

Dannin Ihrem Ordner eingeben:

"bower init" 

Folgen Sie den Anweisungen, geben Sie dann:

"bower install --save Polymer/polymer 

eine Datei index.html erstellen und anfangen zu arbeiten !! !

+0

Sorry für die Down-Abstimmung, und ich schätze die Anstrengung, aber das beantwortet die Frage nicht. Die Installation der Laube ist eindeutig dokumentiert. –

5

Das Hauptproblem mit Polymer ist, dass die getaggten Build-Commits keine package.json haben, was es unmöglich macht, sie mit npm zu installieren (z.B. siehe v1.1.1). Dies bedeutet, dass Sie zur Installation von Polymer mit npm ein Hilfsprogramm benötigen. Vielleicht ist der beste Kandidat dafür Napa.

Napa ist ein Paket zur Installation von Git-Projekten, die keine (gültige) package.json haben.Die npm Seite bereits erklärt, wie es zu benutzen, hier eine kurze Zusammenfassung für Polymer:

  1. npm install napa --save-dev
  2. Aktualisieren Sie Ihre package.json diese enthalten (ersetzen xyz mit der Version, die Sie wollen):

    { 
        "scripts" : { 
         "install" : "napa" 
        }, 
        "napa" : { 
         "polymer" : "polymer/polymer#vX.Y.Z" 
        } 
    } 
    

Beachten Sie, dass napa klont nur die Repo in die node_modules Ordner, damit keine Abhängigkeiten von Polymer neben ihm installiert werden, aber Sie können behalten die gesamte Konfiguration in Ihrem package.json anstatt Bower zu verwenden.

+0

Hatte nicht von Napa gehört, das ist ziemlich cool. Dennoch ist das vielleicht nicht wirklich eine Lösung dafür: Es scheint, dass Polymer nicht nur ihre verteilbaren Dateien im git-Repo direkt ablegt, sondern diese vielmehr als zugreifbar macht.Zip-Dateien auf ihrer [Releases] (https://github.com/Polymer/Polymer/Releases) Seite. Mit dieser Lösung müsste man eigentlich Polymer als Teil des Build-Schrittes bauen. –

+1

Polymer verwaltet einen separaten Build-Zweig, in dem die gebauten Versionen enthalten sind (die ebenfalls mit Tags versehen sind). Sehen Sie sich zum Beispiel das Commit mit dem Tag [v.1.1.1] (https://github.com/Polymer/polymer/tree/v1.1.1) in ihrem Repo an, es enthält nur das Build und nichts von der Quelle. – Tiddo

+0

Danke! Habe das zuerst nicht bemerkt. –