- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
TL;DR,错误:
Step #0: Creating an optimized production build...
Step #0: Failed to compile.
Step #0:
Step #0: Failed to load config "airbnb-typescript" to extend from.
Step #0: Referenced from: /app/.eslintrc.js
我正在尝试使用 Tailwind CSS、Craco 和 React 以及 Docker 构建一个前端项目。我有一个类似的项目在运行,只是没有 Tailwind 和 Craco,但使用相同的 eslint 设置,这没有出现任何问题。
我在 Google Cloud Build 上运行 DockerFile,但它在 .eslintrc.js 上失败了。在本地,DockerFile 运行没有任何问题,就像在本地运行 npm run build script 一样。我在 Cloud build 上找不到关于这个错误的任何信息,所以希望有人知道如何解决这个问题。
我也已将我在本地构建的 Dockerfile 推送到 Google Cloud 上的 Container Images,但也没有成功。
当我从 .eslintrc.js
中的 extends
数组中删除 "airbnb-typescript"
时,它会抛出同样的错误,仅使用 extends
数组中的下一个包,在本例中为 'airbnb/hooks'
。
这是 Google Cloud Build 错误日志的一部分:
Step #0: Step 9/14 : RUN npm run build
Step #0: ---> Running in 4a21e90bac22
Step #0:
Step #0: > react-tailwind-frontend@0.1.0 build /app
Step #0: > craco build
Step #0:
Step #0: Creating an optimized production build...
Step #0: Failed to compile.
Step #0:
Step #0: Failed to load config "airbnb-typescript" to extend from.
Step #0: Referenced from: /app/.eslintrc.js
Step #0:
Step #0:
Step #0: [91mnpm[0m[91m ERR! code ELIFECYCLE
Step #0: [0m[91mnpm[0m[91m [0m[91mERR! [0m[91merrno 1
Step #0: [0m[91mnpm ERR! react-tailwind-frontend@0.1.0 build: `craco build`
Step #0: npm ERR! Exit status 1
Step #0: npm ERR!
Step #0: [0m[91mnpm ERR! Failed at the react-tailwind-frontend@0.1.0 build script.
Step #0: npm [0m[91mERR![0m[91m This is probably not a problem with npm. There is likely additional logging output above.
Step #0: [0m[91m
Step #0: npm ERR! A complete log of this run can be found in:
Step #0: npm ERR! /root/.npm/_logs/2021-04-15T07_41_43_989Z-debug.log
Step #0: The command '/bin/sh -c npm run build' returned a non-zero code: 1
Finished Step #0
ERROR
ERROR: build step 0 "gcr.io/cloud-builders/docker" failed: step exited with non-zero status: 1
Step #0: [0m
Package.json
{
"name": "react-tailwind-frontend",
"version": "0.1.0",
"private": true,
"dependencies": {
"@apollo/client": "^3.3.10",
"@craco/craco": "^6.1.1",
"@tailwindcss/forms": "^0.2.1",
"@tailwindcss/postcss7-compat": "^2.0.3",
"@testing-library/jest-dom": "^5.11.9",
"@testing-library/react": "^11.2.5",
"@testing-library/user-event": "^12.6.3",
"@types/jest": "^26.0.20",
"@types/node": "^12.19.16",
"@types/react": "^17.0.1",
"@types/react-dom": "^17.0.0",
"autoprefixer": "^9.8.6",
"graphql": "^15.5.0",
"postcss": "^7.0.35",
"react": "^17.0.1",
"react-dom": "^17.0.1",
"react-scripts": "4.0.2",
"subscriptions-transport-ws": "^0.9.18",
"tailwindcss": "npm:@tailwindcss/postcss7-compat@^2.0.3",
"typescript": "^4.1.3",
"web-vitals": "^1.1.0"
},
"scripts": {
"codegen": "graphql-codegen --config codegen.yml --watch -r dotenv/config",
"dev": "craco start",
"dev:all": "REACT_APP_REMOTE_URL=http://localhost:4001 npm-run-all -p dev codegen -c -l",
"start": "craco start",
"build": "craco build",
"test": "craco test",
"eject": "react-scripts eject",
"format": "prettier --write \"**/*.ts{,x}\"",
"lint": "tsc --noEmit && eslint -c ./.eslintrc.js \"**/*.ts{,x}\" --fix"
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"devDependencies": {
"@graphql-codegen/cli": "1.20.1",
"@graphql-codegen/introspection": "1.18.1",
"@graphql-codegen/typescript": "1.21.0",
"@graphql-codegen/typescript-operations": "1.17.14",
"@graphql-codegen/typescript-react-apollo": "2.2.1",
"@typescript-eslint/eslint-plugin": "^4.15.0",
"@typescript-eslint/parser": "^4.15.0",
"babel-eslint": "^10.1.0",
"eslint-config-airbnb": "^18.2.1",
"eslint-config-airbnb-typescript": "^12.3.1",
"eslint-config-prettier": "^7.2.0",
"eslint-config-react-app": "^6.0.0",
"eslint-plugin-flowtype": "^5.2.0",
"eslint-plugin-import": "^2.22.1",
"eslint-plugin-jest": "^24.1.3",
"eslint-plugin-jsx-a11y": "^6.4.1",
"eslint-plugin-prettier": "^3.3.1",
"eslint-plugin-react": "^7.22.0",
"eslint-plugin-react-hooks": "^4.2.0",
"eslint-plugin-testing-library": "^3.10.1",
"husky": "^6.0.0",
"lint-staged": "^10.5.4",
"npm-run-all": "^4.1.5",
"prettier": "^2.2.1",
"stylelint-config-recommended": "^3.0.0"
},
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"*.{js,ts,tsx}": "eslint --cache --fix",
"src/**/*.{js,jsx,ts,tsx,json,css,scss,md}": "prettier --write"
}
}
Docker 文件。因此,它在 npm run build 时失败了:
FROM node:14-alpine as frontend-builder
ARG REACT_APP_REMOTE_URL
ARG REACT_APP_WS_URL
WORKDIR /app
COPY package.json package-lock.json /app/
ENV NODE_ENV production
RUN npm install
COPY ./ /app
RUN npm run build
FROM nginx:stable-alpine
RUN rm -rf /usr/share/nginx/html/*
COPY --from=frontend-builder /app/build /usr/share/nginx/html
COPY ./nginx.conf /etc/nginx/nginx.conf
ENTRYPOINT ["nginx", "-g", "daemon off;"]
.eslintrc.js
module.exports = {
extends: [
'airbnb-typescript',
'airbnb/hooks',
'plugin:react/recommended',
'prettier/@typescript-eslint',
'prettier',
'prettier/react',
],
plugins: ['react', '@typescript-eslint', 'react-hooks'],
env: {
browser: true,
es6: true,
jest: true,
},
globals: {
Atomics: 'readonly',
SharedArrayBuffer: 'readonly',
},
parser: '@typescript-eslint/parser',
parserOptions: {
ecmaFeatures: {
jsx: true,
},
ecmaVersion: 2020,
sourceType: 'module',
project: ['./tsconfig.json'],
},
settings: {
react: {
version: 'detect', // Tells eslint-plugin-react to automatically detect the version of React to use
},
},
rules: {
'linebreak-style': 'off',
},
};
最佳答案
此错误可能有多种可能性和原因。我列出了其中一些供您查看、分析和试用。
将 typescript 插件添加到 .eslintrc,使用 extends option in.eslintrc
extends: [
"plugin:import/errors",
"plugin:import/warnings",
"plugin:import/typescript",
],
你需要安装这个包:
yarn add -D eslint-import-resolver-typescript
然后将其添加到您的 .eslintrc.js 文件或 .eslintrc.json配置文件:
{
... settings: {
...
'import/resolver': {
node: {
extensions: ['.js', '.jsx', '.ts', '.tsx'],
moduleDirectory: ['node_modules', 'src/'],
},
},
}
}
根据这个GitHub solution ,问题可以通过以下方式解决:
创建 .env 文件并包含:
SKIP_PREFLIGHT_CHECK=true
ESLINT_NO_DEV_ERRORS=true
创建 .env.production 文件并包含:
SKIP_PREFLIGHT_CHECK=true
DISABLE_ESLINT_PLUGIN=true
PUBLIC_URL=/my-app
通过删除当前的“lint”并将其替换为 “lint”,在“scripts”下的 package.json 中添加这两行:“eslint .src/--ext .js,.jsx, .ts,.tsx", "lint:fix": "npm run lint -- --fix"
。还要检查这个 document查看是否必须根据您的情况在 ESlint 配置文件的“扩展”字段中包含 'airbnb','airbnb-typescript','airbnb-base','airbnb-typescript/base'
查看下面的每个引用资料,因为有多个针对这个问题提出的解决方案,可以帮助大家查看和分析了解各种替代方案以及其他人如何解决它。
关于typescript - 如何解决 "Failed to load config "airbnb-typescript"to extend from."on Google Cloud Build?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67104770/
@Cacheable在同一类中方法调用无效 上述图片中,同一个类中genLiveBullets()方法调用同类中的queryLiveByRoom()方法,这样即便标识了Cacheable标签,
目录 @Transaction注解导致动态切换更改数据库失效 使用场景 遇到问题 解决 @Transaction
@RequestBody不能class类型匹配 在首次第一次尝试使用@RequestBody注解 开始加载字符串使用post提交(貌似只能post),加Json数据格式传输的时候,
目录 @Autowired注入static接口问题 @Autowired自动注入普通service很方便 但是如果注入static修饰的serv
目录 @RequestBody部分属性丢失 问题描述 JavaBean实现 Controller实现
目录 解决@PathVariable参数接收不完整的问题 今天遇到的问题是: 解决办法: @PathVariable接受的参
这几天在项目里面发现我使用@Transactional注解事务之后,抛了异常居然不回滚。后来终于找到了原因。 如果你也出现了这种情况,可以从下面开始排查。 1、特性 先来了解一下@Trans
概述: ? 1
场景: 在处理定时任务时,由于这几个方法都是静态方法,在aop的切面中使用@Around注解,进行监控方法调用是否有异常。 发现aop没有生效。 代码如下:
最近做项目的时候 用户提出要上传大图片 一张图片有可能十几兆 本来用的第三方的上传控件 有限制图片上传大小的设置 以前设置的是2M&nb
我已经实现了这个SCIM reference code在我们的应用程序中。 我实现的代码确实通过了此postman link中存在的所有用户测试集合。 。我的 SCIM Api 也被 Azure 接受
我一直对“然后”不被等待的行为感到困扰,我明白其原因。然而,我仍然需要绕过它。这是我的用例。 doWork(family) { return doWork1(family)
我正在尝试查找 channel 中的消息是否仍然存在,但是,我不确定如何解决 promise ,查看其他答案和文档,我可以看到它可能是通过函数实现的,但我是不完全确定如何去做。我希望能在这方面获得一些
我有以下情况: 同一工作区中的 2 个 Eclipse 项目:Apa 和 Bepa(为简洁起见,使用化名)。 Apa 项目引用(包括)Bepa 项目。 我在 Bepa 有一个类 X,具有公共(publ
这个问题已经有答案了: Why am I getting a NoClassDefFoundError in Java? (31 个回答) 已关闭 6 年前。 我正在努力学习 spring。所以我输入
我正在写一个小游戏,屏幕上有许多圆圈在移动。 我在两个线程中管理圈子,如下所示: public void run() { int stepCount = 0; int dx;
我在使用 Sympy 求解方程时遇到问题。当我运行代码时,例如: 打印(校正(10)) 我希望它打印一个数字 f。相反,它给我错误:执行中止。 def correction(r): from
好吧,我制作的每个页面都有这个问题。我不确定我做错了什么,但我所有的页面都不适用于所有分辨率。可能是因为我使用的是宽屏?大声笑我不确定,但在小于宽屏分辨率的情况下,它永远不会看起来正确。它的某些部分你
我正在尝试像这样进行一个非常简单的文化 srting 检查 if(culture.ToUpper() == "ES-ES" || "IT-IT") { //do something } else
Closed. This question is off-topic. It is not currently accepting answers. Learn more。 想改进这个问题吗?Upda
我是一名优秀的程序员,十分优秀!