【问题标题】:How do I add a symlink from project's node_modules?如何从项目的 node_modules 添加符号链接?
【发布时间】:2021-12-30 20:10:15
【问题描述】:

我一直在学习如何使用 React、Node.js 和 MYSQL 编写密码管理器的教程。 我突然收到这个错误,告诉我文件 /EncrpytionHandler 不在项目 src/ 目录中。 不过,文件结构与视频中的相同。 我不确定该怎么做,因为即使我确实移动了文件,错误仍然会发生。 这是教程的视频和我的工作区的截图:

编译时出现问题: ./src/App.js 9:0-66 中的错误 未找到模块:错误:您尝试导入项目 src/ 目录之外的 ../../server/EncryptionHandler。不支持 src/ 之外的相对导入。 你可以将它移到 src/ 中,或者从项目的 node_modules/ 中添加一个符号链接。

Coding a Password Manager - ReactJS, NodeJS, MySQL

Image of my workspace

【问题讨论】:

    标签: javascript mysql reactjs


    【解决方案1】:

    您尝试在项目 src/ 目录之外导入文件。这个功能不久前被添​​加到“create-react-app”中。您可能想通过简单地将相同的文件添加到您的前端应用程序来解决它,例如,添加到 src/util/ 目录,或者继续这个答案:

    ReactJS import component outside src/ directory

    【讨论】:

      【解决方案2】:

      注意你已经在src文件夹下运行了服务器,所以它作为你的服务器进程的根目录运行是正常的,所以这个进程没有退出它的根目录的权限,所以最好加上这个模块到 src 文件夹 使导出器在该文件夹中可用,否则您可以为其创建符号链接,如下所示:

      在 src 目录中创建名为“createSym.js”的文件,并将以下程序放入其中:

      // Node.js program to demonstrate the
      // fs.symlink() method
        
      // Import the filesystem module
      const {symlink} = require('fs');
        
      symlink("../../server/EncryptionHandler.js",
              "./EncryptionHandler.js", 'file', (err) => {
        if (err) console.log(err)
        else console.log("done");
      );
      

      并使用 src 目录中的节点运行它

      node createSym.js
      

      请注意,要执行此操作,您需要拥有所需的权限

      【讨论】:

        猜你喜欢
        • 2016-09-05
        • 2021-01-15
        • 1970-01-01
        • 2018-12-23
        • 2011-03-26
        • 1970-01-01
        • 2016-03-20
        • 2020-11-17
        • 1970-01-01
        相关资源
        最近更新 更多