Less.js: 3.11.0 Modul „tslib“ kann nicht gefunden werden

Erstellt am 10. Feb. 2020  ·  19Kommentare  ·  Quelle: less/less.js

Modul 'tslib' 3.11.0 kann nicht gefunden werden

high priority

Hilfreichster Kommentar

3.11.0 war so ein großes Update.
Sollte 4.0.0 gewesen sein

Alle 19 Kommentare

Ich kann das Problem bestätigen. Es kam mit der neuesten Version, 3.10.3 funktionierte gut. Vielleicht könnte @matthew-dean die letzte Zusammenführung überprüfen?

Schritte zum Reproduzieren mit Docker

  1. einen neuen Ordner erstellen
  2. platzieren Sie dort etwas test.less mit gültigem Less-Code
  3. erstelle ein Dockerfile mit folgendem Inhalt:
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. Rufen Sie im Ordner docker build . an

Dies führt zu folgendem Fehler:

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

Auch reproduzierbar mit grunt-contrib-less ("grunt-contrib-less": "2.0.0"), das "less": "^3.0.4" verwendet.
Es wurde auch ein Schluckproblem gemeldet.

3.11.0 war so ein großes Update.
Sollte 4.0.0 gewesen sein

Auch ausgelöste Fehler in der Yarn E2E-Testsuite (wir verwenden das, um verschiedene Projekte zu überwachen):
https://github.com/yarnpkg/berry/runs/436357016

Ich vermute, dass das Projekt nur eine Abhängigkeit zu tslib hinzufügen muss - die Leute vergessen oft, es explizit aufzulisten, weil die Quelldateien nicht darauf verweisen, sondern nur die Build-Artefakte.

Nun schießen, tut mir leid. Der Build hat Unit-Tests bestanden, also schätze ich, dass hier ein Test fehlte.

@siimots

3.11.0 war so ein großes Update. Sollte 4.0.0 gewesen sein

Nicht wirklich, in Bezug auf Semver. Es sollte keine abwärtskompatiblen Änderungen geben, sondern nur Änderungen an einigen Build-Einstellungen. Ich werde es in Kürze überprüfen.

@arkanis

Ich vermute, dass das Projekt nur eine Abhängigkeit zu tslib hinzufügen muss - die Leute neigen dazu, zu vergessen, es explizit aufzulisten, weil die Quelldateien nicht darauf verweisen, sondern nur die Build-Artefakte.

Dies ist wahrscheinlich darauf zurückzuführen, dass tslib eine implizite Abhängigkeit (Abhängigkeit einer Abhängigkeit) in den devDependencies sein könnte. Die Tests würden also bestehen, aber ein normaler npm install würde es nicht installieren.

+1, sehe dies auch mit Apostrophecms. Sieht so aus, als würde das schnell behoben werden, danke.

Abgesehen davon, wenn jemand eine zuverlässige Methode zum Simulieren / Testen einer Bibliotheksinstallation als Abhängigkeit kennt und Tests durchführt, ohne dass Knotenmodule gelöscht / neu installiert werden müssen, würde ich es gerne hören.

@matthew-dean Fwiw diese Art von Problem ist einer der Gründe, warum wir Plug'n'Play in Yarn eingeführt haben. Es löst Ausnahmen aus, wenn Pakete unsichere Zugriffe machen (wie hier tslib ), anstatt sie irrtümlicherweise erfolgreich ausführen zu lassen. Natürlich muss Yarn verwendet werden, da npm es nicht unterstützt, also ist es möglicherweise nicht das, wonach Sie suchen 🙂

Um Ihnen ein Beispiel zu geben, hat der von mir verlinkte Test Folgendes berichtet:

image

Kann jemand überprüfen, ob dieser Build Dinge repariert? https://github.com/less/less.js/tree/release-3.11.1

Sie können node_modules-Ordner überall verschachteln. Du kannst also einen reinstecken
Ihren test/-Ordner, der nur für diesen Zweck verwendet wird und bequemer ist
in die Luft jagen. Wir machen das mit Apostroph.

Am Montag, 10. Februar 2020 um 16:37 Uhr Matthew Dean [email protected]
schrieb:

Kann jemand überprüfen, ob dieser Build Dinge repariert?
https://github.com/less/less.js/tree/release-3.11.1


Sie erhalten dies, weil Sie kommentiert haben.
Antworten Sie direkt auf diese E-Mail und zeigen Sie sie auf GitHub an
https://github.com/less/less.js/issues/3469?email_source=notifications&email_token=AAAH27IM5UVBLOEMPE5BJR3RCHCJBA5CNFSM4KSHHJ62YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOELKMI5A#issuecomment-268,369
oder abbestellen
https://github.com/notifications/unsubscribe-auth/AAAH27OZWO622K5JYHEYNCLRCHCJBANCNFSM4KSHHJ6Q
.

--

THOMAS BOUTELL | CHEF TECHNOLOGY OFFICER
APOSTROPHEKME | apostrophecms.com | er/ihn/sein

Darin können Sie einen Symlink haben, um den Hauptordner des Moduls zu finden
der richtige Name.

Am Mo, 10. Februar 2020 um 17:02 Uhr schrieb Tom Boutell [email protected] :

Sie können node_modules-Ordner überall verschachteln. Du kannst also einen reinstecken
Ihren test/-Ordner, der nur für diesen Zweck verwendet wird und bequemer ist
in die Luft jagen. Wir machen das mit Apostroph.

Am Montag, 10. Februar 2020 um 16:37 Uhr Matthew Dean [email protected]
schrieb:

Kann jemand überprüfen, ob dieser Build Dinge repariert?
https://github.com/less/less.js/tree/release-3.11.1


Sie erhalten dies, weil Sie kommentiert haben.
Antworten Sie direkt auf diese E-Mail und zeigen Sie sie auf GitHub an
https://github.com/less/less.js/issues/3469?email_source=notifications&email_token=AAAH27IM5UVBLOEMPE5BJR3RCHCJBA5CNFSM4KSHHJ62YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOELKMI5A#issuecomment-268,369
oder abbestellen
https://github.com/notifications/unsubscribe-auth/AAAH27OZWO622K5JYHEYNCLRCHCJBANCNFSM4KSHHJ6Q
.

--

THOMAS BOUTELL | CHEF TECHNOLOGY OFFICER
APOSTROPHEKME | apostrophecms.com | er/ihn/sein

--

THOMAS BOUTELL | CHEF TECHNOLOGY OFFICER
APOSTROPHEKME | apostrophecms.com | er/ihn/sein

@matthew-dean ... wie kann ich meine package.json-Datei ändern, um Ihre neue Version auszuprobieren? Ich kann 3.11.0 immer noch nur herunterziehen, wenn ich keine Version angebe.

@boustell Das ist nicht die klarste Beschreibung. Meinen Sie damit, eine Art Unterpaket im Repo einzurichten? Ich frage mich, wie Sie dies so tun, dass der übergeordnete node_modules -Auflösungsalgorithmus von Node nicht auftritt.

@jmwolfe

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

Hmm. Nein, du hast recht, das passt nicht ganz zu deiner Situation. Das einzige
Ich kann mir sicher vorstellen, dass ein lokaler npm-Proxy eingerichtet wird, in dem
Dieses bestimmte Modul wird von Ihrem eigenen Standort aus erfüllt und npm getestet
dagegen installieren. Lokale npm-Proxys wie dieser sind eigentlich nicht schwer zu erreichen
komm vorbei, aber es ist ziemlich viel.

Am Montag, 10. Februar 2020 um 17:10 Uhr Matthew Dean [email protected]
schrieb:

@boutell https://github.com/boutell Das ist nicht ganz klar
Bezeichnung. Meinen Sie damit, eine Art Unterpaket im Repo einzurichten?
Ich frage mich, wie Sie dies so tun, dass Node's Parent nicht begegnet
node_modules Auflösungsalgorithmus.

@jmwolfe https://github.com/jmwolfe

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


Sie erhalten dies, weil Sie erwähnt wurden.
Antworten Sie direkt auf diese E-Mail und zeigen Sie sie auf GitHub an
https://github.com/less/less.js/issues/3469?email_source=notifications&email_token=AAAH27O3T4O2Z7VPTBA6HYLRCHGEPA5CNFSM4KSHHJ62YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOELKPPYQ#issuecomment-234,438
oder abbestellen
https://github.com/notifications/unsubscribe-auth/AAAH27JP6LEUZIENWBEWERLRCHGEPANCNFSM4KSHHJ6Q
.

--

THOMAS BOUTELL | CHEF TECHNOLOGY OFFICER
APOSTROPHEKME | apostrophecms.com | er/ihn/sein

@matthew-dean - die Verwendung in meinem Paket.json funktioniert, um Gulp-less zu beheben, das von weniger abhängt:

"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)

meine resultierende gulpfile.js wird perfekt geladen.

p.s. gulp-less und ein paar andere Pakete befinden sich in devDependencies.

Grosses Dankeschön! Wird dies in npm veröffentlicht?

Am Dienstag, 11. Februar 2020 um 00:53 Uhr Matthew Dean [email protected]
schrieb:

Geschlossen #3469 https://github.com/less/less.js/issues/3469 über 842386b
https://github.com/less/less.js/commit/842386b8db5cb5afa4edf5a4c81d40bcbf47a6a2
.


Sie erhalten dies, weil Sie erwähnt wurden.
Antworten Sie direkt auf diese E-Mail und zeigen Sie sie auf GitHub an
https://github.com/less/less.js/issues/3469?email_source=notifications&email_token=AAAH27NPPJXO4IOUM2I2J3LRCI4NLA5CNFSM4KSHHJ62YY3PNVWWK3TUL52HS4DFWZEXG43VMVCXMZLOORHG65DJMZUWGYLUNFXW5KTDN5WW2ZLOORHAIZGO
oder abbestellen
https://github.com/notifications/unsubscribe-auth/AAAH27I5LOTWY22VMC57QFLRCI4NLANCNFSM4KSHHJ6Q
.

--

THOMAS BOUTELL | CHEF TECHNOLOGY OFFICER
APOSTROPHEKME | apostrophecms.com | er/ihn/sein

@boutelli ja ist es. Ich habe gerade verifiziert.

👍 danke für alles, was du tust!

Am Dienstag, 11. Februar 2020 um 12:18 Uhr Jesse Wolfe [email protected]
schrieb:

@boutell https://github.com/boutell ja ist es. Ich habe gerade verifiziert.


Sie erhalten dies, weil Sie erwähnt wurden.
Antworten Sie direkt auf diese E-Mail und zeigen Sie sie auf GitHub an
https://github.com/less/less.js/issues/3469?email_source=notifications&email_token=AAAH27P3RR4ZWL6PXZHC7N3RCLMXRA5CNFSM4KSHHJ62YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOELNIUHY#issuecomment-551,58474
oder abbestellen
https://github.com/notifications/unsubscribe-auth/AAAH27MKPLJTLBZ5NLHZWALRCLMXRANCNFSM4KSHHJ6Q
.

--

THOMAS BOUTELL | CHEF TECHNOLOGY OFFICER
APOSTROPHEKME | apostrophecms.com | er/ihn/sein

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen