typescript - Σφάλμα Node: Δεν μπορεί να βρεθεί το module 'contextify' με Yarn και Webpack


Προσπαθώ να τρέξω μια εφαρμογή (στην οποία θα δουλέψω) χρησιμοποιώντας:

yarn start

Αλλά λαμβάνω το σφάλμα:

ts-node ./src/engine/server/server
Error: Cannot find module 'contextify'
  at Function.Module._resolveFilename (internal/modules/cjs/loader.js:580:15)
  at Function.Module._load (internal/modules/cjs/loader.js:506:25)
  at Module.require (internal/modules/cjs/loader.js:636:17)
  at require (internal/modules/cjs/helpers.js:20:18)
  at Object.<anonymous> (/Users/aa/Documents/app/node_modules/jsdom/lib/jsdom/browser/index.js:5:21)
  at Module._compile (internal/modules/cjs/loader.js:688:30)
  at Object.Module._extensions..js (internal/modules/cjs/loader.js:699:10)
  at Module.load (internal/modules/cjs/loader.js:598:32)
  at tryModuleLoad (internal/modules/cjs/loader.js:537:12)
  at Function.Module._load (internal/modules/cjs/loader.js:529:3)

Η εξάρτηση contextify δεν υπάρχει στο package.json. Δοκίμασα διαφορετικές εκδόσεις του Node αλλά λαμβάνω το ίδιο αποτέλεσμα. Η εφαρμογή είναι σε TypeScript χρησιμοποιώντας Webpack. Χρησιμοποιώ Mac. Κάποια ιδέα;

Απάντηση #1

Το σφάλμα gyp πιθανότατα προέρχεται από τρία από αυτά τα πράγματα:

1) Η Python δεν είναι εγκατεστημένη:

  • Εγκαταστήστε το Python 2.7
  • Ορίστε το npm να βρει το python: npm config set python <python.path>\python.exe όπου python.path είναι η διαδρομή όπου έχετε εγκαταστήσει το python (π.χ. C:\Python2.7)

2) Πίσω από ένα τείχος προστασίας/διακομιστή μεσολάβησης

  • Χρησιμοποιήστε την εντολή: npm config set proxy <proxyUrl>

3) Πρόβλημα με το node-sass Το πρόβλημα προκύπτει όταν ο διακομιστής μεσολάβησης εμποδίζει τα αρχεία του node-sass.

  • Κατεβάστε το αρχείο win32-x64-57_binding.node από το https://github.com/sass/node-sass/releases

  • Προσθέστε μια μεταβλητή περιβάλλοντος SASS_BINARY_PATH στο αρχείο (π.χ. C:\temp\win32-x64-57_binding.node)

Ίσως χρειαστεί να αλλάξετε το αρχείο καθώς μερικές φορές ζητάει win32-x64-59_binding.node

Απάντηση #2

Το πρόβλημα αποδείχθηκε ότι ήταν ένα πρόβλημα διαμόρφωσης για τη μεταγλώττιση C++ στο Node 6.x.x. Αυτό το σχόλιο το έλυσε για μένα.