the*_*hme 27 typescript reactjs webpack create-react-app
我有一个create-react-app应用程序,我的翻译文件是从jsx到typescript。例如,调用一个文件/code/app_react/src/common/Action.jsx,我将其重命名为/code/app_react/src/common/Action.tsx. 我进行了必要的更改以成功将其转换为tsx,但收到与名称更改相关的错误:
./src/common/Action.jsx 错误:ENOENT:没有这样的文件或目录,打开“/code/src/common/Action.jsx”
导入这个文件的文件是一个jsx文件,但是现在我向tsx其中导入一个文件。
这是一个CRA应用程序,那么有没有正确的方法来清除这个错误?
解决方案:
我必须git使用git rm命令将它们从存储库中删除,如下所示:
git rm /code/src/common/Action.jsx
Run Code Online (Sandbox Code Playgroud)
一旦我这样做了,它就会jsx从提交的文件中删除,然后我就可以使用新tsx文件
我是有这个问题(虽然我已经改名js来jsx,而不是jsx到tsx),并加入到这个问题(运行解决方案git rm的原始文件)并没有为我工作。
这个 r/reactjs Reddit 线程建议做什么工作:删除和重新安装node_modules:
rm -rf node_modules && npm i
Run Code Online (Sandbox Code Playgroud)
我有同样的问题,不需要删除node_modules或删除目标文件,你只需要杀死节点进程。
如果您在windows:
node如果您在linux:
pkill node,等等。在我杀死node进程并npm start再次运行后,它找到了目标文件。
这是由于预先构建的缓存而发生的。一个简单的解决方案是重新启动您的 nodejs 并响应应用程序。
在 Linux 中
$ pkill node
$ killall node
$ kill -9 <pid>
Run Code Online (Sandbox Code Playgroud)
在 Windows 中
C:\>taskkill /im node.exe
C:\>taskkill /f /im node.exe
C:\>taskkill /pid <PID of node>
Run Code Online (Sandbox Code Playgroud)
在 MacOs 中
$sudo killall -9 node
Run Code Online (Sandbox Code Playgroud)
然后再次启动你的 React 应用程序。
npm start
Run Code Online (Sandbox Code Playgroud)
也许您还没有导入该文件。您需要导入该文件才能使用它。
import Action from '/code/app_react/src/common/Action.tsx';
Run Code Online (Sandbox Code Playgroud)
还将其添加到您的 webpack.config.js 中。
resolve: {
extensions: [".ts", ".tsx", ".js", ".jsx"]
},
Run Code Online (Sandbox Code Playgroud)
你可以走了!
| 归档时间: |
|
| 查看次数: |
40113 次 |
| 最近记录: |