当我尝试将本地依赖项导入到我的项目中时,我遇到了一个非常奇怪的问题。
我有一个名为“test_project”的项目和另一个将链接的名为“test_module”的项目。我将测试模块链接到全局node_modules文件夹(我尝试过npm链接和yarn链接)。然后在 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'.
无论出于何种原因,“/Users”被添加到路径的末尾,我不知道为什么。我已经两次吹毁了我的环境,而且这种情况一直在发生。这是 WSL 的问题吗?我是否配置错误?
编辑:“test_project”是从 create-react-app 生成的,没有任何修改。如果您想知道我的环境是如何设置的。
EDIT2:我在Windows的CMD中尝试了这个,一切正常。所以看起来这些问题是由 WSL、我的节点安装以及其他什么东西的组合引起的:/
谢谢
最佳答案
我想出了如何解决这个问题。您需要编辑 wsl 配置并将根设置为“/”。我的理论是某个地方正在使用相对路径,并且使用“/”作为根会从路径中删除“/mnt/”,从而允许它正确后退。但是,我无法用事实来支持它:D
无论如何,修复都很简单。
sudo vim /etc/wsl.conf
然后添加此字段,使文件如下所示:
[automount]
root = /
options = "metadata"
(我有选项字段来解决权限问题)
然后完全注销/注销,重新登录,取消链接模块,清除node_modules文件夹,运行npm install,然后重新链接。到那时一切都应该起作用了。
干杯!
关于javascript - 无法从 WSL 中的 npm/yarn 链接加载链接的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55506199/