2017-06-12 3 views
0

Ich möchte auf einfache Weise gemeinsamen JS-Code zwischen verschiedenen JS-Projekten teilen. Ich dachte über das Erstellen einer Bower-Komponente (siehe: LINK) oder einer privaten NPM-Komponente (siehe: LINK).Einfache IDEA-Freigabe von JS-Code zwischen verschiedenen JS-Projekten?

Allerdings möchte ich es in einer sehr IDE-freundlichen Weise verwendet werden. Ein solcher, dass, wenn wir den Common Code (Projekt) aktualisieren, wir zuerst den geänderten Common Code nicht veröffentlichen müssen.

Lassen Sie mich erklären, was ich meine, wie wir dies in Java mit Eclipse tun (wir verwenden in der Regel IntelliJ mit Python und React JS): In einem Java-Projekt enthalten wir Common Java-Code durch eine Maven-Abhängigkeit und öffnen auch die Gemeinsamer Java-Code als Projekt in Eclipse. Eclipse ist dann schlau genug, um zu sehen, dass es eine direkte Verbindung zum Common-Code-Projekt enthält, anstatt den Common-Code als Jar aufzunehmen, so dass Sie das Common-Code-Projekt nicht zuerst beim privaten Repo bereitstellen müssen, wenn Sie Änderungen vornehmen es.

Wir sind noch keine Experten in JS-Code, also wie können wir diese Art von freundlicher IDE-Nutzung mit JS realisieren?

+0

Würden die lokalen Pfade von package.json für Sie arbeiten? https://docs.npmjs.com/files/package.json#local-paths – sbking

+0

Ja, danke, ich dachte über eine ähnliche Konstruktion mit Webpack Alias ​​nach, da wir Webpack verwenden. Aber ist das der Weg zu gehen? Wie richten andere eine solche Entwicklungsumgebung ein? – edbras

+0

Irgendwelche Erfahrungen mit dem npm-Modul "local-dependencies"? – edbras

Antwort

0

Ich löste es durch die Verwendung npm-Link:

1) Gebraucht npm-Link wie hier erklärt: LINK

2) Löste das babel Problem wie hier erklärt: LINK In meinem Fall meine babel config sieht so aus:

   options: { 
        presets: ['babel-preset-es2015', 'babel-preset-react'].map(require.resolve), 
        plugins: ['babel-plugin-transform-react-jsx-img-import'].map(require.resolve) 
       } 

Funktioniert schön wel. Ich schaute auf lokale Abhängigkeiten von npm, aber es funktionierte nicht mit der aktuellen npm-Version. Momentan funktioniert es, wie sie es beheben. Aber ich muss immer "npm start" ausführen, genau wie andere Sync npm Module. Ich möchte auch keine lokalen Abhängigkeiten verwenden, da mehrere Entwickler den gemeinsamen Code an verschiedenen Stellen platzieren, was ihn fragil macht.

Verwandte Themen