Less.js: 3.11.0 Não é possível encontrar o módulo 'tslib'

Criado em 10 fev. 2020  ·  19Comentários  ·  Fonte: less/less.js

Não é possível encontrar o módulo 'tslib' 3.11.0

high priority

Comentários muito úteis

3.11.0 foi uma atualização tão grande.
Deveria ser 4.0.0

Todos 19 comentários

Posso reconhecer o problema. Ele veio com a versão mais recente, 3.10.3 funcionou bem. Talvez @matthew-dean possa verificar a última mesclagem?

Etapas para reproduzir com o docker

  1. criar uma nova pasta
  2. coloque algum test.less contendo menos código válido lá
  3. crie um Dockerfile com o seguinte conteúdo:
FROM buildpack-deps:buster

COPY test.less /

# install npm
ENV HOME /root
RUN curl -sL https://deb.nodesource.com/setup_10.x | bash -
RUN apt-get install -y nodejs

# install less and compile something
RUN npm install -g less
WORKDIR /
RUN lessc test.less test.css
  1. Chame docker build . na pasta

Isso causará o seguinte erro:

Step 6/8 : RUN npm install -g less
 ---> Running in a76855c18efa
/usr/bin/lessc -> /usr/lib/node_modules/less/bin/lessc
+ [email protected]
added 60 packages from 123 contributors in 4.306s
Removing intermediate container a76855c18efa
 ---> b78508030649
Step 7/8 : WORKDIR /
 ---> Running in 6cca70d0d858
Removing intermediate container 6cca70d0d858
 ---> d812408c6ef8
Step 8/8 : RUN lessc test.less test.css
 ---> Running in 6c8ef5fc9408
internal/modules/cjs/loader.js:638
    throw err;
    ^

Error: Cannot find module 'tslib'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
    at Function.Module._load (internal/modules/cjs/loader.js:562:25)
    at Module.require (internal/modules/cjs/loader.js:692:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at Object.<anonymous> (/usr/lib/node_modules/less/bin/lessc:9:13)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
The command '/bin/sh -c lessc test.less test.css' returned a non-zero code: 1

Também reproduzível com grunt-contrib-less ("grunt-contrib-less": "2.0.0") que usa "less": "^3.0.4".
Um problema de gulp também foi relatado.

3.11.0 foi uma atualização tão grande.
Deveria ser 4.0.0

Também acionou erros no testsuite Yarn E2E (nós usamos isso para monitorar vários projetos):
https://github.com/yarnpkg/berry/runs/436357016

Suspeito que o projeto só precise adicionar uma dependência a tslib - as pessoas tendem a esquecer de listá-lo explicitamente porque os arquivos de origem não fazem referência a ele, apenas os artefatos de compilação fazem.

Bem atirar, desculpe todos. A compilação estava passando nos testes de unidade, então acho que faltava um teste aqui.

@siimots

3.11.0 foi uma atualização tão grande. Deveria ser 4.0.0

Não realmente, em termos de semver. Não deve haver alterações incompatíveis com versões anteriores, apenas alterações em algumas configurações de compilação. Vou conferir em breve.

@arcanis

Suspeito que o projeto só precise adicionar uma dependência ao tslib - as pessoas tendem a esquecer de listá-lo explicitamente porque os arquivos de origem não o referenciam, apenas os artefatos de compilação o fazem.

Provavelmente a razão disso acontecer é porque tslib pode ser uma dependência implícita (dependência de uma dependência) no arquivo devDependencies. Assim, os testes passariam, mas um npm install normal não o instalaria.

+1, também vendo isso com apóstrofos. Parece que isso será corrigido rapidamente, obrigado.

À parte, se alguém souber de um método confiável para simular/testar uma instalação de biblioteca como dependência e executar testes sem a necessidade de limpar/reinstalar módulos de nó, adoraria ouvi-lo.

@matthew-dean Fwiw esse tipo de problema é uma das razões pelas quais introduzimos o Plug'n'Play no Yarn. Ele lança exceções quando os pacotes fazem acessos inseguros (como tslib aqui) em vez de deixá-los ter sucesso por engano. É claro que é necessário usar o Yarn, pois o npm não o suporta, então pode não ser o que você está procurando 🙂

Para dar um exemplo, é isso que o teste que vinculei relatou:

image

Alguém pode verificar se esta compilação está consertando as coisas? https://github.com/less/less.js/tree/release-3.11.1

Você pode ter pastas node_modules aninhadas em qualquer lugar. Então você pode colocar um
sua pasta de teste/que é usada apenas para esse fim e é mais conveniente
para explodir. Fazemos isso com apóstrofo.

Em segunda-feira, 10 de fevereiro de 2020 às 16h37 Matthew Dean [email protected]
escreveu:

Alguém pode verificar se esta compilação está consertando as coisas?
https://github.com/less/less.js/tree/release-3.11.1


Você está recebendo isso porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/less/less.js/issues/3469?email_source=notifications&email_token=AAAH27IM5UVBLOEMPE5BJR3RCHCJBA5CNFSM4KSHHJ62YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOELKMI5Aissue#comment-58436KTDN5WW2ZLOORPWSZGOELKMI5Aissue#comment-58436
ou cancelar
https://github.com/notifications/unsubscribe-auth/AAAH27OZWO622K5JYHEYNCLRCHCJBANCNFSM4KSHHJ6Q
.

--

THOMAS BOUTELL | CHEFE DE TECNOLOGIA
APOSTROFECMS | apostrophecms.com | ele/ele/sua

Dentro disso você pode ter um link simbólico para encontrar a pasta principal do módulo
o nome certo.

Em segunda-feira, 10 de fevereiro de 2020 às 17:02, Tom Boutell [email protected] escreveu:

Você pode ter pastas node_modules aninhadas em qualquer lugar. Então você pode colocar um
sua pasta de teste/que é usada apenas para esse fim e é mais conveniente
para explodir. Fazemos isso com apóstrofo.

Em segunda-feira, 10 de fevereiro de 2020 às 16h37 Matthew Dean [email protected]
escreveu:

Alguém pode verificar se esta compilação está consertando as coisas?
https://github.com/less/less.js/tree/release-3.11.1


Você está recebendo isso porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/less/less.js/issues/3469?email_source=notifications&email_token=AAAH27IM5UVBLOEMPE5BJR3RCHCJBA5CNFSM4KSHHJ62YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOELKMI5Aissue#comment-58436KTDN5WW2ZLOORPWSZGOELKMI5Aissue#comment-58436
ou cancelar
https://github.com/notifications/unsubscribe-auth/AAAH27OZWO622K5JYHEYNCLRCHCJBANCNFSM4KSHHJ6Q
.

--

THOMAS BOUTELL | CHEFE DE TECNOLOGIA
APOSTROFECMS | apostrophecms.com | ele/ele/sua

--

THOMAS BOUTELL | CHEFE DE TECNOLOGIA
APOSTROFECMS | apostrophecms.com | ele/ele/sua

@matthew-dean ... como posso alterar meu arquivo package.json para experimentar sua nova versão? Ainda só consigo baixar o 3.11.0 se não especificar uma versão.

@boutell Essa não é a descrição mais clara. Você quer dizer configurar algum tipo de subpacote no repositório? Eu estou querendo saber como você faz isso de uma maneira que não encontre o algoritmo de resolução pai do Node node_modules .

@jmwolfe

https://docs.npmjs.com/files/package.json#git -urls-as-dependencies

Hum. Não, você está certo, isso não combina muito com sua situação. O único
certeza que posso pensar seria configurar um proxy npm local no qual
esse módulo específico é satisfeito em sua própria localização e testando o npm
instalar contra isso. Proxies npm locais como este não são difíceis de
venha, mas é meio que muito.

Em segunda-feira, 10 de fevereiro de 2020 às 17h10 Matthew Dean [email protected]
escreveu:

@boutell https://github.com/boutell Isso não é o mais claro
Descrição. Você quer dizer configurar algum tipo de subpacote no repositório?
Estou me perguntando como você faz isso de uma maneira que não encontre o pai do Node
algoritmo de resolução node_modules.

@jmwolfe https://github.com/jmwolfe

https://docs.npmjs.com/files/package.json#git -urls-as-dependencies


Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/less/less.js/issues/3469?email_source=notifications&email_token=AAAH27O3T4O2Z7VPTBA6HYLRCHGEPA5CNFSM4KSHHJ62YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOELKPPYQ#issue-584ZLOORPWSZGOELKPPYQ#comment-584
ou cancelar
https://github.com/notifications/unsubscribe-auth/AAAH27JP6LEUZIENWBEWERLRCHGEPANCNFSM4KSHHJ6Q
.

--

THOMAS BOUTELL | CHEFE DE TECNOLOGIA
APOSTROFECMS | apostrophecms.com | ele/ele/sua

@matthew-dean - usando isso no meu package.json funciona para corrigir gulp-less, que depende de menos:

"dependencies": {
    "less": "git://github.com/less/less.js.git#afc9b86"
}

# npm list less
[email protected] C:\SVN\CMGR\branches\cmgr_pmm2\ContentManager\ContentManager            
+-- [email protected]                                                                           
| `-- [email protected]  deduped (git://github.com/less/less.js.git#afc9b8606272a01bf4392f71e4d9db59d06fddb9)                                                                                     
`-- [email protected]  (git://github.com/less/less.js.git#afc9b8606272a01bf4392f71e4d9db59d06fddb9)

meu gulpfile.js resultante carrega perfeitamente.

obs. gulp-less e alguns outros pacotes estão em devDependencies.

Ótimo, obrigado! Isso é publicado no npm?

Em terça-feira, 11 de fevereiro de 2020 às 12h53 Matthew Dean [email protected]
escreveu:

Fechado nº 3469 https://github.com/less/less.js/issues/3469 via 842386b
https://github.com/less/less.js/commit/842386b8db5cb5afa4edf5a4c81d40bcbf47a6a2
.


Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/less/less.js/issues/3469?email_source=notifications&email_token=AAAH27NPPJXO4IOUM2I2J3LRCI4NLA5CNFSM4KSHHJ62YY3PNVWWK3TUL52HS4DFWZEXG43VMVCXMZLOORHG65DJMZUWGYLUNFXW5KTDN5WW2ZLOORPWSZGOWRJHA5I#event-3025301621 ,
ou cancelar
https://github.com/notifications/unsubscribe-auth/AAAH27I5LOTWY22VMC57QFLRCI4NLANCNFSM4KSHHJ6Q
.

--

THOMAS BOUTELL | CHEFE DE TECNOLOGIA
APOSTROFECMS | apostrophecms.com | ele/ele/sua

@boutell sim, é. acabei de verificar.

👍 obrigado por tudo que você faz!

Em terça-feira, 11 de fevereiro de 2020 às 12h18 Jesse Wolfe [email protected]
escreveu:

@boutell https://github.com/boutell sim, é. acabei de verificar.


Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/less/less.js/issues/3469?email_source=notifications&email_token=AAAH27P3RR4ZWL6PXZHC7N3RCLMXRA5CNFSM4KSHHJ62YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOELNIUHY#comissuement-584747551 ,
ou cancelar
https://github.com/notifications/unsubscribe-auth/AAAH27MKPLJTLBZ5NLHZWALRCLMXRANCNFSM4KSHHJ6Q
.

--

THOMAS BOUTELL | CHEFE DE TECNOLOGIA
APOSTROFECMS | apostrophecms.com | ele/ele/sua

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