Ich möchte etwas in dieser Art machen, also npm install
installiert auch die package.json
de ../somelocallib
oder, was noch wichtiger ist, seine Abhängigkeiten.
"dependencies": {
"express": "*",
"../somelocallib": "*"
}
Ich möchte etwas in dieser Art machen, also npm install
installiert auch die package.json
de ../somelocallib
oder, was noch wichtiger ist, seine Abhängigkeiten.
"dependencies": {
"express": "*",
"../somelocallib": "*"
}
Ich weiß, dass npm install ../somelocallib
funktioniert.
Ich weiß jedoch nicht, ob die Syntax, die Sie in der Frage zeigen, auch von package.json
...
Leider, doc scheint nur URL als Abhängigkeit zu erwähnen.
Versuchen Sie file:///.../...tar.gz
und verweist auf eine gezippte lokale Bibliothek... und sagen Sie uns, ob es funktioniert.
Curious.....zumindest unter Windows (mein npm ist 3.something) musste ich tun:
"dependencies": {
"body-parser": "^1.17.1",
"module1": "../module1",
"module2": "../module2",
Als ich eine npm install ../module1 --save
führte dies zu absoluten Pfaden und nicht zu relativen Pfaden, wie in der Dokumentation beschrieben.
Ich habe noch ein wenig herumprobiert und festgestellt, dass ../xxx
war ausreichend.
Konkret habe ich die lokalen Knotenmodule ausgecheckt, um d zu sagen: \build\module1 , d: \build\module2 und mein Node-Projekt (Anwendung) in d: \build\nodeApp.
Zum 'Installieren', I:
d:\build\module1> rmdir "./node_modules" /q /s && npm install
d:\build\module2> rmdir "./node_modules" /q /s && npm install
d:\build\nodeApp> rmdir "./node_modules" /q /s && npm install
Die package.json von module1 hat eine Abhängigkeit von "module2": "../module2"; module2 hat keine lokale Abhängigkeit; nodeApp hat Abhängigkeiten von "module1": "../module1" und "module2": "../module2".
Nicht sicher, ob dies nur für mich funktioniert, da alle 3 Ordner (module1, module2 und nodeApp) auf der gleichen Ebene sitzen.......
Ich wollte einen Satz lokaler Abhängigkeiten verwenden, die in TypeScript geschrieben sind, und keine der Antworten hier hat für mich funktioniert. npm install
würde sich einfach weigern, die Abhängigkeiten zu erstellen.
Ich musste auf die Verwendung von tsconfig.json
um die Pakete zu meinem Projekt hinzuzufügen ohne sie als Abhängigkeiten zu kennzeichnen. Mein Anwendungsfall wird zusätzlich durch die Tatsache erschwert, dass einige Abhängigkeiten voneinander abhängen, und ich wollte todos von ihnen aus dem lokalen Ordner stammen.
Hier ist meine Lösung:
// tsconfig.json
{
"compilerOptions": {
"baseUrl": "./",
"paths": {
"@tiptap/*": [
"tiptap/packages/*/src"
]
}
}
}
In dem obigen Beispiel habe ich einen lokalen Projektunterordner mit dem Namen tiptap/
und es gibt viele Pakete in tiptap/packages/*
. Die "paths"
Option werden alle @tiptap/foo
Einfuhren in ./tiptap/packages/foo/src
sowohl für meine eigenen Dateien als auch für die Dateien in tiptap/
.
Das ist keine gute Lösung, aber es ist die einzige, die bei mir funktioniert hat.
Das hat bei mir funktioniert: Stellen Sie zunächst sicher, dass die npm-Verzeichnisse den richtigen Benutzer haben
sudo chown -R myuser ~/.npm
sudo chown -R myuser /usr/local/lib/node_modules
Dann verlinken Sie in Ihrer package.json das Verzeichnis
"scripts": {
"preinstall": "npm ln mylib ../../path/to/mylib"
},
"dependencies": {
"mylib" : "*"
}
Es gibt viele yalc die bei der Verwaltung lokaler Pakete hilft. Es half mir mit lokalen Lib, die ich später bereitstellen. Packen Sie das Projekt einfach mit dem .yalc-Verzeichnis (mit oder ohne /node_modules). Also einfach tun:
npm install -g yalc
in directory lib/$ yalc publish
im Projekt:
project/$ yalc add lib
project/$ npm install
Das war's.
Wenn Sie etwas aktualisieren möchten:
lib/$ yalc push //this will updated all projects that use your "lib"
project/$ npm install
Packen und Bereitstellen mit Docker
tar -czvf <compresedFile> <directories and files...>
tar -czvf app.tar .yalc/ build/ src/ package.json package-lock.json
Hinweis: Denken Sie daran, Folgendes hinzuzufügen .yalc Verzeichnis.
inDocker:
FROM node:lts-alpine3.9
ADD app.tar /app
WORKDIR /app
RUN npm install
CMD [ "node", "src/index.js" ]
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.