Облачные функции развертывают ошибку во время lint в Windows: «enoent ENOENT: нет такого файла или каталога»




firebase google-cloud-functions (6)

В качестве дополнительного выполнения npm --prefix% RESOURCE_DIR% run lint, как сказал @Deji James, добился определенного прогресса, но все же не сработал.

В качестве предложения я нашел этот https://github.com/firebase/firebase-tools/issues/610

и @merlinnot говорит здесь: Привет, ребята, у вас, наверное, есть что-то в предустановке в firebase.json, не так ли? Просто удалите то, что у вас есть сейчас, если это не так важно.

работал на меня. PS. прежде чем принять решение об удалении, я сделал все переустановить вещи, удалить вещи. Только это сработало.

Следуя руководству по началу работы с функцией firebase, вы получите, казалось бы, простую ошибку при попытке развертывания с помощью:

firebase deploy --only functions

i  deploying functions
Running command: npm --prefix $RESOURCE_DIR run lint
npm ERR! path C:\Users\Beat\leginformant\$RESOURCE_DIR\package.json
npm ERR! code ENOENT
npm ERR! errno -4058
npm ERR! syscall open
npm ERR! enoent ENOENT: no such file or directory, open 
'C:\Users\Beat\leginformant\$RESOURCE_DIR\package.json'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent

Файл package.json существует так же, как показано в учебнике в моем проекте / functions / package.json. Попытка изменить или распечатать ENV RESOURCE_DIR безуспешно. Предполагая, что это будет ограничено внутри оболочки оболочки NPM.

версия npm: 5.6.0

версия узла: 8.9.0


В окнах при инициализации проекта firebase в CLI с использованием firebase init в файле firebase.json измените код на приведенный ниже { "functions": { "predeploy": [ "npm --prefix \"%RESOURCE_DIR%\" run lint" ], "source": "functions" } } После этого попробуйте firebase deploy --only functions .


Вы можете исправить это, firebase.json файл firebase.json и удалив эту строку, содержащую RESOURCE_DIR .


Для Ubuntu вам нужно изменить firebase.json на следующий, обратите внимание на $ перед RESOURCE_DIR

{
  "functions": {
    "predeploy": [
      "npm --prefix \"$RESOURCE_DIR\" run lint",
      "npm --prefix \"$RESOURCE_DIR\" run build"
    ]
  }
}

для Windows 10 вам нужно изменить firebase.json n на следующий, заметьте % после и перед RESOURCE_DIR

{
  "functions": {
    "predeploy": [
      "npm --prefix \"%RESOURCE_DIR%\" run lint",
      "npm --prefix \"%RESOURCE_DIR%\" run build"
    ]
  }
}

Помимо других предложений, если вы измените команду preflight / preploy с:

"npm --prefix \"$RESOURCE_DIR\" run lint", OR
"npm --prefix \"%RESOURCE_DIR%\" run lint"

в

"npm --prefix ./functions run lint"

проблема, кажется, исправлена. Это также разрешает это как для Windows, так и для Linux.

Чтобы увидеть больше деталей, пожалуйста, посмотрите этот ответ (и дальнейшую ветку): https://github.com/firebase/firebase-tools/issues/610#issuecomment-360147507


При беге

firebase init functions

Я использую эту конфигурацию

? What language would you like to use to write Cloud Functions? JavaScript
//TypeScript doesn't work
? Do you want to use ESLint to catch probable bugs and enforce style? Yes
//If you don't you will get a missing file lint
? File functions/package.json already exists. Overwrite? Yes
? Do you want to install dependencies with npm now? Yes
//Why not

Тогда если использовать windows

Замените $ RESOURCE_DIR на% RESOURCE_DIR% в firebase.json







firebase-cli