代码之家  ›  专栏  ›  技术社区  ›  Cormor

节点在另一台计算机上复制后找不到现有模块或安装新模块

  •  0
  • Cormor  · 技术社区  · 1 年前

    我把我的项目复制到了一台新电脑上(事实上,我使用的是同步服务)。我检查了我的文件夹 ls -l 我是权限似乎是对的。

    这是一个strapi应用程序,当我执行 npm run develop ,显示内容如下:

    
    > strapi-hugo-b[email protected] develop
    > strapi develop
    
    sh: 1: strapi: not found
    

    我使用创建了我的应用程序 npx create-strapi-app@latest strapi-hugo-blog ,所以strapi是作为依赖项安装的,我后来用它进行了更新 npm install 在原始计算机上。

    所以这很奇怪。当我执行新 npm安装 ,我得到的是:

    npm ERR! code 1
    npm ERR! path /home/me/my-app/node_modules/esbuild
    npm ERR! command failed
    npm ERR! command sh -c node install.js
    npm ERR! node:internal/errors:491
    npm ERR!     ErrorCaptureStackTrace(err);
    npm ERR!     ^
    npm ERR! 
    npm ERR! <ref *1> Error: spawnSync /home/me/my-app/node_modules/esbuild/bin/esbuild EACCES
    npm ERR!     at Object.spawnSync (node:internal/child_process:1110:20)
    npm ERR!     at spawnSync (node:child_process:871:24)
    npm ERR!     at Object.execFileSync (node:child_process:914:15)
    npm ERR!     at validateBinaryVersion (/home/me/my-app/node_modules/esbuild/install.js:96:28)
    npm ERR!     at /home/me/my-app/node_modules/esbuild/install.js:283:5 {
    npm ERR!   errno: -13,
    npm ERR!   code: 'EACCES',
    npm ERR!   syscall: 'spawnSync /home/me/my-app/node_modules/esbuild/bin/esbuild',
    npm ERR!   path: '/home/me/my-app/node_modules/esbuild/bin/esbuild',
    npm ERR!   spawnargs: [ '--version' ],
    npm ERR!   error: [Circular *1],
    npm ERR!   status: null,
    npm ERR!   signal: null,
    npm ERR!   output: null,
    npm ERR!   pid: 0,
    npm ERR!   stdout: null,
    npm ERR!   stderr: null
    npm ERR! }
    npm ERR! 
    npm ERR! Node.js v18.13.0
    

    我在网上找不到这个错误消息。

    当我只是尝试安装strapi时,我之前会收到更多的错误和警告(显然它试图使用strapi版本3,这是不推荐的,而我的包锁中有版本4),但最后会出现相同的消息。

    用sudo执行npm不会改变任何东西(而且不应该改变,因为所有东西都是本地安装的)。

    当我使用同步服务时,我在原来的电脑上再试了一次,一切都很好。Node已安装,并且在两个系统上的版本几乎相同(v18.17.1/v8.13.0)。

    1 回复  |  直到 1 年前
        1
  •  3
  •   Robin Thomas    1 年前

    解决此类问题的最佳方法是删除 node_modules 目录和 package-lock.json 文件,然后使用 npm install


    复制的原因 节点模块 可能不起作用是因为两台计算机可能运行不同的操作系统、不同的OS版本、不同的体系结构或不同的node/npm版本,等等。

    推荐文章