如何解决ReferenceError: 初始化前无法访问 {variable name}
我将 react-scripts@^4.0.3
和 typescript@~3.7.2
更新到最新,但是当我运行 npm run start
时,我收到以下错误:
ReferenceError: 初始化前无法访问{variable name}
我知道“临时死区”,但是这个应用程序在为这样的箭头函数声明导出时没有问题,事实上,我们用这种语法声明了大部分/所有函数:
export const someFunc = () => {}
现在只允许我像这样声明后导出:
function someFunction(){} -or- const someFunction = () => {}
export { someFunction }
问题:如何通过这些新的包更新允许导出速记函数表达式语法?
文件名: tsconfig.json
{
"compilerOptions": {
"target": "es5","lib": [
"es2015","dom","dom.iterable","esnext"
],"jsx": "react","baseUrl": "src","module": "esnext","moduleResolution": "node","strict": true,"allowJs": true,"noEmit": true,"skipLibCheck": true,"isolatedModules": true,"esModuleInterop": true,"resolveJsonModule": true,"allowSyntheticDefaultImports": true,"forceConsistentCasingInFileNames": true,"noFallthroughCasesInSwitch": true,"emitDecoratorMetadata": true,"experimentalDecorators": true
},"include": [
"src"
],"exclude": [
"./node_modules"
],"extends": "./tsconfig.paths.json"
}
文件名: tsconfig.paths.json
{
"compilerOptions": {
"baseUrl": "./src","paths": {
"@src": ["*"],"@pages": ["pages"],"@pages/*": ["pages/*"],"@hooks": ["core/hooks"],"@hooks/*": ["core/hooks/*"],"@components": ["core/components"],"@components/*": ["core/components/*"],"@containers": ["containers"],"@containers/*": ["containers/*"],"@services": ["core/services"],"@services/*": ["core/services/*"],"@configs": ["core/configs"],"@configs/*": ["core/configs/*"],"@assets": ["core/assets"],"@assets/*": ["core/assets/*"],"@models": ["core/models"],"@models/*": ["core/models/*"],"@store": ["core/store"],"@store/*": ["core/store/*"],"@utils": ["core/utils"],"@utils/*": ["core/utils/*"],"@styles": ["core/styles"],"@styles/*": ["core/styles/*"]
}
}
}
文件名:craco.config.js
const CracoAlias = require("craco-alias")
module.exports = {
plugins: [
{
plugin: CracoAlias,options: {
source: "tsconfig",baseUrl: "./src",tsConfigPath: "./tsconfig.paths.json"
}
}
]
}
文件名: package.json
{
"name": "ui","version": "0.1.0","private": true,"dependencies": {
"@craco/craco": "^6.1.2","@prettier/plugin-xml": "^0.12.0","@testing-library/jest-dom": "^4.2.4","@testing-library/react": "^9.5.0","@testing-library/user-event": "^7.1.2","@types/bootstrap": "^4.5.1","@types/classnames": "^2.2.11","@types/debug": "^4.1.5","@types/jest": "^24.9.1","@types/jquery": "^3.5.5","@types/lodash": "^4.14.168","@types/node": "^12.19.15","@types/react": "^16.14.2","@types/react-dom": "^16.9.10","@types/react-helmet": "^5.0.16","@types/react-redux": "^7.1.15","@types/react-router-dom": "^5.1.7","@types/react-select": "^3.1.2","@types/react-table": "^7.0.27","bootstrap": "^4.6.0","classnames": "^2.2.6","core-js": "^3.12.1","debug": "^4.3.1","file-selector": "^0.1.19","husky": "^4.3.8","i18next": "^19.8.4","immer": "^6.0.9","jquery": "^3.5.1","lint-staged": "^10.5.3","node-sass": "^4.14.0","prettier": "^2.2.1","react": "^17.0.2","react-bootstrap": "^1.4.3","react-dom": "^16.14.0","react-dropzone": "^10.2.2","react-helmet": "^6.1.0","react-i18next": "^11.8.5","react-redux": "^7.2.2","react-router-dom": "^5.2.0","react-scripts": "^4.0.3","react-select": "^3.1.1","react-table": "^7.6.3","redux-thunk": "^2.3.0","typescript": "~3.7.2"
},"scripts": {
"start": "BROWSER=none craco start","build": "npm run check && craco build","test": "craco test","coverage": "CI=true npm test -- --colors --coverage","check": "prettier --check \"src/**/*.{js,jsx,ts,tsx,json,css,scss,md,xml,svg}\"","format": "prettier --write \"src/**/*.{js,"eject": "react-scripts eject"
},"browserslist": {
"production": [
">0.2%","not dead","not op_mini all"
],"development": [
"last 1 chrome version","last 1 firefox version","last 1 safari version"
]
},"jest": {
"coverageReporters": [
"text","html"
],"moduleNameMapper": {
"react-i18next": "<rootDir>/__mocks__/react-i18next.js","^file-loader": "<rootDir>/__mocks__/file-loader.js"
},"resetMocks": false
},"prettier": {
"singleQuote": true,"jsxSingleQuote": true
},"lint-staged": {
"src/**/*.{js,svg}": [
"prettier --write"
]
},"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},"devDependencies": {
"@babel/core": "^7.14.3","craco-alias": "^3.0.0"
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。