如何强制Firebase Cloud函数使用ESLint



为我的云功能启用ESLint的命令是什么?

为了了解一些背景信息,我运行了firebase init并进行了设置,但出于某种原因,它使用了ESLint而不是TSLint。我重拨了CCD_ 2;否";当它问我是否想使用ESLint时。然而,正如评论所指出的,ESLint现在受到青睐,TSLint则被弃用。所以现在我需要为这个项目重新启用ESLint。

下面的视频是关于如何设置云功能的一个很好的入门教程,包括您提到的esint、typescript,内容丰富解释

通过查看firebase-tools实用程序的存储库,可以找到firebase init命令中使用的模板。

对于使用eslint的linting,您将需要以下文件:

  • CCD_ 6
  • package.json
  • tsconfig.dev.json

适当更新这些文件后,在functions目录中运行npm install,以便下载所需的库。

您还需要将这些行添加到项目目录中的firebase.json文件中,以便在部署之前对函数进行linted和transpile。

// PROJECT_DIR/firebase.json
{
"functions": {
"source": "functions",
"predeploy": [
"npm --prefix "$RESOURCE_DIR" run lint",
"npm --prefix "$RESOURCE_DIR" run build"
],
/* ... */
},
/* ... */
}

为了方便起见,.eslintrc.jspackage.jsontsconfig.dev.json在撰写本文时已包含在下面。如果将来获得它们,请查阅它们各自的链接,因为它们可能已经更改。

// PROJECT_DIR/functions/.eslintrc.js
module.exports = {
root: true,
env: {
es6: true,
node: true,
},
extends: [
"eslint:recommended",
"plugin:import/errors",
"plugin:import/warnings",
"plugin:import/typescript",
"google",
"plugin:@typescript-eslint/recommended",
],
parser: "@typescript-eslint/parser",
parserOptions: {
project: ["tsconfig.json", "tsconfig.dev.json"],
sourceType: "module",
},
ignorePatterns: [
"/lib/**/*", // Ignore built files.
],
plugins: [
"@typescript-eslint",
"import",
],
rules: {
"quotes": ["error", "double"],
"import/no-unresolved": 0,
},
};
// PROJECT_DIR/functions/package.json
{
"name": "functions",
"scripts": {
"lint": "eslint --ext .js,.ts .",
"build": "tsc",
"build:watch": "tsc --watch",
"serve": "npm run build && firebase emulators:start --only functions",
"shell": "npm run build && firebase functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"engines": {
"node": "16"
},
"main": "lib/index.js",
"dependencies": {
"firebase-admin": "^10.0.2",
"firebase-functions": "^3.18.0"
},
"devDependencies": {
"@typescript-eslint/eslint-plugin": "^5.12.0",
"@typescript-eslint/parser": "^5.12.0",
"eslint": "^8.9.0",
"eslint-config-google": "^0.14.0",
"eslint-plugin-import": "^2.25.4",
"firebase-functions-test": "^0.2.0",
"typescript": "^4.5.4"
},
"private": true
}
// PROJECT_DIR/functions/tsconfig.dev.json
{
"include": [
".eslintrc.js"
]
}

相关内容

  • 没有找到相关文章

最新更新