【问题标题】:npm WARN enoent ENOENT: no such file or directory, open 'C:\Users\Nuwanst\package.json'npm WARN enoent ENOENT:没有这样的文件或目录,打开 'C:\Users\Nuwanst\package.json'
【发布时间】:2018-01-13 20:35:36
【问题描述】:

我只想将 socket.io 安装到我位于 3.chat 文件夹中的项目中。但是当我运行以下命令时,它会显示以下警告。并且它没有在我的项目文件夹中创建 node_modules 目录。如何解决这个问题?

C:\Users\Nuwanst\Documents\NodeJS\3.chat>npm install socket.io
C:\Users\Nuwanst
`-- socket.io@2.0.3

npm WARN enoent ENOENT: no such file or directory, open 'C:\Users\Nuwanst\package.json'
npm WARN Nuwanst No description
npm WARN Nuwanst No repository field.
npm WARN Nuwanst No README data
npm WARN Nuwanst No license field.

【问题讨论】:

  • 确保您已正确解压 zip 文件

标签: javascript node.js npm server node-modules


【解决方案1】:

如果您已经有 package-lock.json 文件,只需将其删除并重试。

【讨论】:

  • 将我的所有应用程序从一台服务器同步到另一台服务器,并且 package-lock.json 存在。从所有应用程序中删除它节省了我的时间。
  • 我没有 package-lock.json。
  • 这在删除 package-lock.json 后对我有用。现在我的问题是 package-lock.json 在运行 npm 安装后会重新创建吗? @Aravin因为我在他的安装过程中,我没有看到它创建了package-lock.json
  • 感谢安装后添加
  • 它对我有用,但你能解释一下这个解决方案吗?
【解决方案2】:

您是否创建了 package.json 文件?也许先再次运行此命令。

C:\Users\Nuwanst\Documents\NodeJS\3.chat>npm init

它会在您的文件夹中创建一个 package.json 文件。

然后运行,

C:\Users\Nuwanst\Documents\NodeJS\3.chat>npm install socket.io --save

--save 确保您的模块保存为 package.json 文件中的依赖项。

让我知道这是否有效。

【讨论】:

  • 这对我有用。谢谢!请注意,当您运行“npm init”时,它会要求您输入很多字段,但默认值在括号中。只需输入并接受默认值。
  • 大多数情况下这不是正确答案。请查看@Aravin 的回答
【解决方案3】:

您需要确定 package.json 文件是否存在于 app 文件夹中。我遇到同样的问题不同但解决方案是一样的

在“package.json”文件存在的地方运行这个命令。即使我遇到类似的问题,然后我更改文件夹并解决它。有关更多解释,我运行 c:\selfPractice> npm start 而我的 package.json 位于 c:\selfPractice\frontend> 然后我更改文件夹并运行 c:\selfPractice\frontend> npm start 并运行

【讨论】:

    【解决方案4】:

    注意:如果您在 CI 管道中遇到此问题,通常是因为 npm 运行 npm ci 而不是 npm installnpm ci 需要准确的package-lock.json

    要解决这个问题,每当您修改 package.json 中的包时(例如,像我一样将包从 devDependencies 移动到 Dependencies),您应该通过在本地运行这些命令在您的存储库中重新生成 package-lock.json,然后将更改推送到上游:

    rm -rf node_modules
    npm install
    git commit package-lock.json
    git push
    

    【讨论】:

      【解决方案5】:

      确保您位于具有 package.json 的正确目录

      【讨论】:

        【解决方案6】:

        最后,如果您遇到以下问题,我有一个解决方案:-

        **npm WARN tar ENOENT: no such file or directory,.......**
        

        那么这不是 npm 或其版本的问题,而是操作系统权限问题,您需要使用以下命令来解决此问题:-

        sudo chown -R $USER:$USER *
        

        补充

        sudo chmod -R 777 *
        

        然后运行:-

        sudo npm i 
        

        【讨论】:

        • 请不要在您的工作区运行sudo chmod -R 777 *
        【解决方案7】:

        如果您的文件夹已经有package.json

        那么,

        复制package.json的路径

        打开终端

        写:

        cd your_path_to_package.json

        ENTER

        然后写:

        npm install

        这对我有用

        【讨论】:

          【解决方案8】:

          删除package.jsonpackage-lock.json文件

          然后输入npm init

          在那之后输入npm install socket.io --save

          最后输入npm install

          它对我有用

          【讨论】:

            【解决方案9】:

            package.json 中的更新 version 对我有用

            【讨论】:

              【解决方案10】:

              如果您的 node_modules 安装在 /home/UserName/ 中,就像我的情况一样, 您的 package-lock.json 文件也将在那里。只需删除此文件,返回您的应用程序文件夹并运行npm init,然后运行npm install <pkgname>(例如 express),将为您创建一个新的 node_modules 文件夹。

              【讨论】:

                【解决方案11】:

                我在 Windows 上的一个新项目中有这个。 npm install 为我创建了一个 node_modules 文件夹,但它以某种方式创建了该文件夹而没有让我完全控制它。我让自己完全控制了node_modulesnode_modules\.staging,然后它就起作用了。

                【讨论】:

                • 让自己完全控制的步骤是什么?
                • @KinleyChristian 右键单击​​文件夹,选择属性,然后进入安全选项卡。
                【解决方案12】:

                好像你已经在根目录安装了express。复制package.json的路径并删除package json文件和node_modules文件夹。

                【讨论】:

                  【解决方案13】:

                  如果您尝试在从其他地方rsync'd 的文件夹上 npm install,请记住将其添加到您的 rsync --exclude

                  yourpath/node_modules
                  

                  否则,NPM 会尝试添加node_modules,rsync 会立即删除,导致很多npm WARN enoent ENOENT: no such file or directory, open 错误。

                  【讨论】:

                    【解决方案14】:

                    您运行的文件路径错误。因此,如果您在 Windows 上工作,请使用 cd 转到正确的文件位置并从那里重新运行。

                    【讨论】:

                    • 贴出代码,说明原因,便于理解。
                    猜你喜欢
                    • 2019-04-13
                    • 2019-06-24
                    • 2019-07-05
                    • 1970-01-01
                    • 2021-08-02
                    • 2020-09-14
                    • 2020-07-28
                    • 2020-09-10
                    • 1970-01-01
                    相关资源
                    最近更新 更多