Mam projekt Node.js, który wymaga węzła w wersji 12 lub nowszej. Czy istnieje sposób na określenie tego w pliku packages.json, aby instalator automatycznie sprawdzał i informował użytkowników, czy muszą dokonać aktualizacji?Jak mogę określić wymaganą wersję Node.js w packages.json?
Odpowiedz
myślę, że można użyć „Silniki” murawę:
{ "engines" : { "node" : ">=0.12" } }
Jak mówisz kod na pewno nie będzie działać ze wszystkimi wersjami niższe, prawdopodobnie chcesz flagę „engineStrict” zbyt:
{ "engineStrict" : true }
Dokumentacja pliku packages.json można znaleźć on the npmjs site
Aktualizacja
engineStrict
jest teraz przestarzałe, więc ostrzeże to tylko. Teraz to użytkownik musi uruchomić npm config set engine-strict true
, jeśli tego chce.
https://github.com/npm /npm/blob/master/CHANGELOG.md#enginestrict "Rzadko używana opcja package.json" engineStrict "została ** przestarzała ** przez kilka miesięcy, generując ostrzeżenia, kiedy była używana.Począwszy od npm @ 3, wartość pola zostanie zignorowana, a naruszenie instrukcji silnika tylko spowoduje wygenerowanie ostrzeżeń. Jeśli ty, jako użytkownik, chcesz egzekwować ścisłe silniki, po prostu uruchom npm config set engine-strict true " –
Pamiętaj, aby' cd .. && npm i
dlaczego na tym świecie przestają to robić ... to traci całe swoje znaczenie – Filippos
Tak jak powiedział Ibam, engineStrict
jest teraz przestarzałe. Ale znalazłem tego rozwiązania:
kontrolne version.js:
import semver from 'semver';
import { engines } from './package';
const version = engines.node;
if (!semver.satisfies(process.version, version)) {
console.log(`Required node version ${version} not satisfied with current version ${process.version}.`);
process.exit(1);
}
package.json:
{
"name": "my package",
"engines": {
"node": ">=50.9" // intentionally so big version number
},
"scripts": {
"requirements-check": "babel-node check-version.js",
"postinstall": "npm run requirements-check"
}
}
dowiedzieć się więcej tutaj: https://medium.com/@adambisek/how-to-check-minimum-required-node-js-version-4a78a8855a0f#.3oslqmig4
.nvmrc
I jeszcze jedno ... dotfile „.nvmrc” może być używane dla wymagających specyficznej wersji węzła (ale nie próbowałem go jeszcze) - https://github.com/creationix/nvm#nvmrc
Jest inna, prostsza sposobem, aby to zrobić:
npm install [email protected]
(oszczędza węzła 8 jako zależność w package.json)- Twoja aplikacja będzie działać przy użyciu węzła 8 do nikogo - nawet użytkownicy Przędza!
Działa to, ponieważ node
to tylko pakiet, który wysyła węzeł jako plik binarny pakietu. Zawiera on po prostu node_module/.bin, co oznacza, że udostępnia on węzeł tylko skryptom pakietów. Nie główna powłoka.
patrz dyskusja na Twitterze tutaj: https://twitter.com/housecor/status/962347301456015360
- 1. PHP: Wykryj wymaganą wersję
- 2. Określ wersję rustc wymaganą dla projektu Cargo
- 3. Node.js, aby uzyskać/określić wersję systemu operacyjnego
- 4. Jak ustawić minimalną wymaganą wersję IOS?
- 5. Jak określić moją wersję ghc?
- 6. Jak wykryć minimalną wersję python wymaganą przez skrypt
- 7. Jak mogę określić minimalną wersję Ruby w Gemfile?
- 8. Jak określić wersję MSBuild w skrypcie nant?
- 9. Jak określić wersję boost w systemie?
- 10. Jak określić wersję dokumentu w potoku elasticsearch?
- 11. Jak określić wersję pakietu w Perlu?
- 12. Jak określić unikalną wersję SNAPSHOT w Gradle?
- 13. Jak określić wersję arkusza roboczego wersji SVN?
- 14. Jak określić wersję Usług Google Play?
- 15. Jak określić minimalną wersję pakietu dla Gemfile?
- 16. nie można uaktualnić wersję node.js w Azure App Służby
- 17. Jak określić wersję Chef Solo w pliku Test Kitchen .kitchen.yml?
- 18. Jak używać kompozytora z non-packagist projektu github zawierającej packages.json
- 19. Jak określić wersję biblioteki do użycia w czasie połączenia?
- 20. Jak określić wersję JAXB w wtyczce maven-jaxb2?
- 21. Jak określić wersję kompilatora Java w pliku pom.xml?
- 22. Jak mogę pobrać wersję zestawu w C#?
- 23. Jak zainstalować starszą wersję pliku node.js w systemie Windows?
- 24. Jak określić poprawną wersję przeglądarki, gdy włączony jest tryb zgodności
- 25. Jak określić wersję .NET przy użyciu opcji/CLR
- 26. node.js - możliwy wyciek pamięci serwera http wersję
- 27. Jak mogę określić mapę hybrydową?
- 28. Jak zainstalować najnowszą wersję pliku node.js na Raspberry Pi?
- 29. Jak programowo określić zainstalowaną wersję IE ze skryptu
- 30. Jak poprawić wymaganą instalację oprogramowania Silverlight?
podobny sposób do odpowiedzi Adama, także przy użyciu node.version: https://stackoverflow.com/a/48691987/3032209 –