Milligram: Remova a propriedade engines do package.json

Criado em 10 jun. 2020  ·  10Comentários  ·  Fonte: milligram/milligram

A versão do nó realmente importa?

awaiting reply

Comentários muito úteis

@davidroeca @westtrade por favor, você pode me dizer o que acontece quando você instala o Milligram?

Eu sei que temos 2 ótimos exemplos e, pelo que entendi, o primeiro exemplo usa uma versão antes de LTS e o segundo exemplo usa uma versão depois de LTS, e ambos os exemplos são afetados.

Em primeiro lugar, gostaria de saber se o mesmo comportamento ocorre ao usar Yarn e Npm.

Além disso, o mesmo comportamento acontece quando você usa ou instala o Milligram v1.4.0 e v1.3.0 (últimas versões)?

No meu caso, ele simplesmente não instala e o NPM gera um erro que escrevi no título. Sua estrutura é maravilhosa - mas é estranho que a estrutura de estilo exija uma versão de interpretador de servidor. Os estilos do navegador não funcionariam sem um interpretador de servidor?

Todos 10 comentários

@westtrade Milligram foi atualizado para a versão LTS do Node.js, pois é uma prática altamente recomendada manter todas as dependências atualizadas.

Por favor, você pode explicar com detalhes por que o Milligram precisa do Node.js v11?

Apenas tropecei neste assunto sozinho. Atualmente no nó 14, a borda do sangramento, e usando svelte , que também está na borda do sangramento. Como usuário, é um pouco estranho ter uma estrutura somente css me dizendo em qual mecanismo de nó devo estar. Presumo que este sinalizador de mecanismo seja mais útil para os desenvolvedores do próprio milligram ?

Uma solução fácil para esse problema no yarn é yarn add --ignore-engines milligram , e diga a qualquer pessoa que clonar seu repo em yarn install --frozen-lockfile --ignore-engines vez de apenas yarn install --frozen-lockfile . No entanto, isso não é o ideal, visto que tudo que estou importando é css.

@davidroeca Sim. A versão Node.js é definida porque é necessária para o ambiente de desenvolvimento do Miligrama. Além disso, é uma prática altamente recomendada manter todas as dependências atualizadas. Nesse caso, o Milligram usa a versão LTS (v12) do Node.js.

Então, deixe-me entender melhor o que está acontecendo e talvez possamos ajudar a melhorar.

@cjpatoilo Concordo que é melhor manter os pacotes atualizados. Na verdade, sou mais atual do que a v12. Meu problema é ligeiramente diferente do problema de >= para permitir futuras versões de nó também:

  "engines": {
-    "node": "^12.17.0",
+    "node": ">=12.17.0",
    "npm": "^6.14.5"
  },

Uma discussão semelhante ocorreu no repositório de bootstrap . Eles optaram por remover o campo engines completamente, porque esses engines específicos são necessários apenas para criar a pasta dist/ que os usuários estão usando. Isso acontece na etapa de construção, então, na verdade, não preciso de nada relacionado ao JS para baixar esses arquivos.

Do ponto de vista de desenvolvimento neste repo, uma nota no README especificando a versão do nó com suporte + um ambiente de CI com uma versão do nó fixo é suficiente a esse respeito?

@westtrade @davidroeca por enquanto, irei remover engine do package.json

@davidroeca @westtrade por favor, você pode me dizer o que acontece quando você instala o Milligram?

Eu sei que temos 2 ótimos exemplos e, pelo que entendi, o primeiro exemplo usa uma versão antes de LTS e o segundo exemplo usa uma versão depois de LTS, e ambos os exemplos são afetados.

Em primeiro lugar, gostaria de saber se o mesmo comportamento ocorre ao usar Yarn e Npm.

Além disso, o mesmo comportamento acontece quando você usa ou instala o Milligram v1.4.0 e v1.3.0 (últimas versões)?

Com o npm, recebo os seguintes avisos:

❯ 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

Com o fio, é um erro:

❯ 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.

Descendo para 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

Com fio:

❯ 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.

Com milligram@~1.3.0 , posso usar a versão mais recente do nodejs sem problemas:

❯ 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 por favor, você pode me dizer o que acontece quando você instala o Milligram?

Eu sei que temos 2 ótimos exemplos e, pelo que entendi, o primeiro exemplo usa uma versão antes de LTS e o segundo exemplo usa uma versão depois de LTS, e ambos os exemplos são afetados.

Em primeiro lugar, gostaria de saber se o mesmo comportamento ocorre ao usar Yarn e Npm.

Além disso, o mesmo comportamento acontece quando você usa ou instala o Milligram v1.4.0 e v1.3.0 (últimas versões)?

No meu caso, ele simplesmente não instala e o NPM gera um erro que escrevi no título. Sua estrutura é maravilhosa - mas é estranho que a estrutura de estilo exija uma versão de interpretador de servidor. Os estilos do navegador não funcionariam sem um interpretador de servidor?

@davidroeca @westtrade obrigado por me explicar.
Vou continuar acompanhando esse problema e talvez encontre uma abordagem melhor.

Por enquanto, fecharei este problema e mesclarei o PR # 253.
Sinta-se à vontade para reabrir este problema ou abrir um novo.

Esta página foi útil?
0 / 5 - 0 avaliações