Имеет ли значение версия узла?
@westtrade Milligram был обновлен до LTS-версии Node.js, поскольку настоятельно рекомендуется поддерживать все зависимости в актуальном состоянии.
Объясните, пожалуйста, зачем Миллиграмме Node.js v11?
Просто наткнулся на этот вопрос сам. В настоящее время на узле 14, на переднем крае, и с использованием svelte , который также находится на переднем крае. Как пользователю немного странно, что фреймворк только для css сообщает мне, на каком движке узла я должен работать. Я предполагаю, что этот флаг движка более полезен для разработчиков самого milligram
?
Простой способ решения этой проблемы в yarn - yarn add --ignore-engines milligram
, и сообщить всем, кто клонирует ваше репо в yarn install --frozen-lockfile --ignore-engines
а не только в yarn install --frozen-lockfile
. Однако это не идеально, учитывая, что все, что я импортирую, - это css.
@davidroeca Да. Версия Node.js определена, потому что она требуется для среды разработки Milligram. Кроме того, настоятельно рекомендуется поддерживать все зависимости в актуальном состоянии. В этом случае Milligram использует LTS-версию (v12) Node.js.
Итак, позвольте мне лучше понять, что происходит, и, возможно, мы сможем помочь улучшить это.
@cjpatoilo Я согласен, что лучше держать пакеты в актуальном состоянии. Я на самом деле более актуален, чем v12. Моя проблема немного отличается от проблемы @westtrade , потому что мою можно решить, переключив требование каретки двигателя на >=
чтобы также разрешить будущие версии узлов:
"engines": {
- "node": "^12.17.0",
+ "node": ">=12.17.0",
"npm": "^6.14.5"
},
Аналогичное обсуждение имело место в репозитории начальной загрузки . Они решили полностью удалить поле двигателей, потому что эти конкретные механизмы необходимы только для создания папки dist/
которую используют пользователи. Это происходит на этапе сборки, поэтому мне на самом деле не нужно ничего, связанного с JS, для загрузки этих файлов.
С точки зрения разработки в этом репо, достаточно ли в этом отношении примечания в README, в котором указывается поддерживаемая версия узла + среда CI с закрепленной версией узла?
@westtrade @davidroeca сейчас я удалю engine
из package.json
@davidroeca @westtrade ,
Я знаю, что у нас есть 2 отличных примера, и, как я понимаю, в первом примере используется версия до LTS, а во втором примере используется версия после LTS, и оба примера затронуты.
Во-первых, я хотел бы знать, происходит ли такое же поведение при использовании Yarn и Npm.
Кроме того, такое же поведение происходит при использовании или установке Milligram v1.4.0 и v1.3.0 (последние версии)?
С npm я получаю следующие предупреждения:
❯ node --version
v14.4.0
❯ npm --version
6.14.5
❯ npm install --save milligram
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN notsup Unsupported engine for [email protected]: wanted: {"node":"^12.17.0","npm":"^6.14.5"} (current: {"node":"14.4.0","npm":"6.14.5"})
npm WARN notsup Not compatible with your version of node/npm: [email protected]
+ [email protected]
added 2 packages from 1 contributor and audited 2 packages in 1.581s
found 0 vulnerabilities
С пряжей это ошибка:
❯ node --version
v14.4.0
❯ yarn --version
1.22.4
❯ yarn add milligram
yarn add v1.22.4
info No lockfile found.
[1/4] Resolving packages...
[2/4] Fetching packages...
error [email protected]: The engine "node" is incompatible with this module. Expected version "^12.17.0". Got "14.4.0"
error Found incompatible module.
info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.
Спускаемся к 12.8.0
❯ node --version
v12.18.0
❯ npm --version
6.14.5
❯ npm install --save milligram
npm notice created a lockfile as package-lock.json. You should commit this file.
+ [email protected]
added 2 packages from 1 contributor and audited 2 packages in 0.876s
found 0 vulnerabilities
Пряжа:
❯ yarn --version
1.22.4
❯ yarn add milligram
yarn add v1.22.4
info No lockfile found.
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
success Saved 2 new dependencies.
info Direct dependencies
└─ [email protected]
info All dependencies
├─ [email protected]
└─ [email protected]
Done in 0.34s.
С milligram@~1.3.0
я могу без проблем использовать последнюю версию nodejs:
❯ node --version
v14.4.0
❯ yarn add milligram@~1.3.0
yarn add v1.22.4
info No lockfile found.
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
success Saved 2 new dependencies.
info Direct dependencies
└─ [email protected]
info All dependencies
├─ [email protected]
└─ [email protected]
Done in 1.47s.
@davidroeca @westtrade ,
Я знаю, что у нас есть 2 отличных примера, и, как я понимаю, в первом примере используется версия до LTS, а во втором примере используется версия после LTS, и оба примера затронуты.
Во-первых, я хотел бы знать, происходит ли такое же поведение при использовании Yarn и Npm.
Кроме того, такое же поведение происходит при использовании или установке Milligram v1.4.0 и v1.3.0 (последние версии)?
В моем случае он просто не устанавливается, и NPM выдает ошибку, которую я написал в заголовке. У вас замечательный фреймворк, но странно, что для стилевого фреймворка требуется версия интерпретатора сервера. Разве стили браузера не работали бы без интерпретатора сервера?
@davidroeca @westtrade спасибо, что объяснили мне.
Я буду отслеживать эту проблему и, возможно, найду лучший подход.
А пока я закрою этот выпуск и объединю PR # 253.
Пожалуйста, не стесняйтесь открывать этот выпуск повторно или открывать новый.
Самый полезный комментарий
В моем случае он просто не устанавливается, и NPM выдает ошибку, которую я написал в заголовке. У вас замечательный фреймворк, но странно, что для стилевого фреймворка требуется версия интерпретатора сервера. Разве стили браузера не работали бы без интерпретатора сервера?