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. Αυτό το σχόλιο το έλυσε για μένα.