React Native run-ios завершается с ошибкой node-sass, но rn запускается без проблем - PullRequest
0 голосов
/ 10 октября 2019

У меня новый проект, который начался с

react-native init my_awesome_app

и следовал инструкциям, чтобы добавить act-native-sass-transformer .

Когда я это сделаю,

react-native run-ios

происходит сбой со следующей ошибкой

Looking for JS files in
   /Users/saravanabalagi/Projects/JS/my_awesome_app 

Loading dependency graph, done.
Loading dependency graph...(node:35251) UnhandledPromiseRejectionWarning: Error: Missing binding /Users/saravanabalagi/Projects/JS/my_awesome_app/node_modules/node-sass/vendor/darwin-x64-72/binding.node
Node Sass could not find a binding for your current environment: OS X 64-bit with Node.js 12.x

Found bindings for the following environments:
  - OS X 64-bit with Node.js 10.x

This usually happens because your environment has changed since running `npm install`.
Run `npm rebuild node-sass` to download the binding for your current environment.
    at module.exports (/Users/saravanabalagi/Projects/JS/my_awesome_app/node_modules/node-sass/lib/binding.js:15:13)
    at Object.<anonymous> (/Users/saravanabalagi/Projects/JS/my_awesome_app/node_modules/node-sass/lib/index.js:14:35)
    at Module._compile (internal/modules/cjs/loader.js:776:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
    at Module.load (internal/modules/cjs/loader.js:643:32)
    at Function.Module._load (internal/modules/cjs/loader.js:556:12)
    at Module.require (internal/modules/cjs/loader.js:683:19)
    at require (internal/modules/cjs/helpers.js:16:16)
    at Object.<anonymous> (/Users/saravanabalagi/Projects/JS/my_awesome_app/node_modules/react-native-sass-transformer/index.js:1:12)
    at Module._compile (internal/modules/cjs/loader.js:776:30)
(node:35251) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:35251) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
error: bundling failed: TypeError: Cannot read property 'transformFile' of undefined
    at /Users/saravanabalagi/Projects/JS/my_awesome_app/node_modules/metro/src/Bundler.js:83:34
    at Generator.next (<anonymous>)
    at asyncGeneratorStep (/Users/saravanabalagi/Projects/JS/my_awesome_app/node_modules/metro/src/Bundler.js:14:24)
    at _next (/Users/saravanabalagi/Projects/JS/my_awesome_app/node_modules/metro/src/Bundler.js:34:9)
    at processTicksAndRejections (internal/process/task_queues.js:85:5)
 BUNDLE  [ios, dev] ./index.js ░░░░░░░░░░░░░░░░ 0.0% (0/1), failed.

Однако интересно то, что с одной из следующих команд

yarn run start
yarn start --reset-cache    
react-native start

Metro-компоновщик работает успешно! (Конечно, это только запускает упаковщик, не устанавливает приложение, поэтому сейчас я устанавливаю приложение, используя react-native run-ios, завершаю и затем выполняю react-native start)

Я точно не знаю, гдеошибка в react-native-sass-transformer или в моем node-sass, но я попытался запустить npm rebuild node-sass, который сказал, что двоичный файл в порядке! (Хотя с ошибками --force это не удалось). Любая помощь приветствуется.

Я использую:

Node            v10.16.0
npm             6.9.0
react-native    0.59.4
node-sass       4.12.0  (Wrapper)       [JavaScript]
libsass         3.5.4   (Sass Compiler) [C/C++]
...