如果我在 Internet 上搜索相同的问题,那么我\xe2\x80\x99 将仅获得 Visual Studio Code 网站和一些实现它的博客的链接。
\n我想知道这是jsconfig.json特定于 Visual Studio Code 还是javascript/webpack?
如果我们将应用程序部署在AWS、Heroku上会发生什么等上会发生什么,我们需要做出改变吗?
\n我正在尝试在非弹出模式下的 create-react-app 中实现 TypeScript 代码共享,但我遇到了臭名昭著的限制,即src不允许在外部导入:
You attempted to import ../../common/src/lib.ts which falls outside of the project src/ directory. [...]
对于非 TypeScript 的情况,这里已被询问并回答,但我无法获得任何使用 TypeScript 的解决方案。具体而言,所提出的解决方案存在的问题是:
设置baseDir在ts-config.json:在这里创建反应的应用程序内抱怨:你的项目baseUrl只能被设置为src或node_modules。Create React App 目前不支持其他值。
基于 react-app-rewired 的方法:更有前途。禁用ModuleScopePlugin让我过去了“在 src 之外尝试导入”错误,但现在的问题是打字稿文件的加载器无法正常运行:
我已经验证它.ts本身没问题:./src从那里复制并导入它工作正常。
我还增加了../../common/src文件夹添加到includes列表中ts-config.json。
我的猜测是 webpack 加载器配置以某种方式有一个规则,可以防止 TypeScript 加载器转译与其预期路径模式不匹配的文件。如何使用 react-app-rewired 解决这个问题?
符号链接源也不起作用——同样的问题。可能是因为 webpack 在内部解析符号链接并在正常加载器规则不适用的路径中看到文件。
基于弹出的解决方案:我现在不想弹出,但我尝试过,基本上又遇到了同样的问题。
我还发现了其他听起来相关但没有回答问题的问题:
我正在尝试映射 tsconfig.json 中的路径以摆脱相对路径地狱。我的React App 基于 Create-React-App。我尝试了这个SO 线程并在我的 tsconfig.json 中添加了路径。我的 tsconfig.json 是
{
"compilerOptions": {
"baseUrl": "src",
"target": "es5",
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "react",
"strictNullChecks": false
},
"include": [
"src"
]
}
Run Code Online (Sandbox Code Playgroud)
当我在 VS Code 中编译我的项目时,它会从 tsconfig.json 中删除路径条目,并显示以下消息。为什么我的基于 React脚本的 React 项目不支持别名导入?