在尝试将本地依赖项导入到项目中时,我遇到了一个非常奇怪的问题。
我有一个名为'test_project'的项目和另一个名为'test_module'的项目。我将测试模块链接到全局node_modules文件夹(我尝试过npm链接和纱线链接)。然后在test_project中我链接test_module。我将test_module导入index.js文件,但是当我执行yarn / npm start时,我收到此错误:
Failed to compile.
./src/index.js
Cannot find file: 'index.js' does not match the corresponding name on disk: '/mnt/c/users/<my_username>/Projects/test_module/Users'.
无论出于何种原因'/用户'被添加到路径的末尾,我不知道为什么。我现在已经两次吹走我的环境而且它一直在发生。这是WSL的问题吗?我有错误的配置吗?
编辑:'test_project'是从create-react-app生成的,没有任何修改。如果您想知道我的环境是如何设置的。
编辑2:我在Windows CMD中试过这个,一切正常。所以看起来这些问题是由WSL,我的节点安装以及其他任何东西组合引起的:/
谢谢
我想出了如何解决这个问题。您需要编辑wsl配置并将根目录设置为“/”。我的理论是在某个地方使用相对路径,并使用'/'作为根从路径中删除'/ mnt /',允许它正确退回。但是,我不能用事实支持它:D
无论如何,修复很容易。
sudo vim /etc/wsl.conf
然后添加此字段,使文件如下所示:
[automount]
root = /
options = "metadata"
(我在那里有选项字段来解决权限问题)
然后完全注销/注销,重新登录,取消链接模块,吹掉node_modules文件夹,运行npm install,然后重新链接。它应该都在那一点上起作用。
干杯!