热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

解决'npmWARNsaveErrorENOENT:没有这样的文件或目录,打开'/Users/<username>/package.json''错误

如何解决《解决'npmWARNsaveErrorENOENT:没有这样的文件或目录,打开'/Users/<username>/package.json''错误》经验,为你挑选了1个好方法。

我是新手,所以请包含URL链接或解释术语,以便我理解.

我已经设法通过终端在Mac OS(10.13.3)上安装'npm',并使用它安装了一些像SASS这样的软件包.

我现在正在尝试使用npm 安装sass-mq.我想我已经成功安装了它,但是我想对我可能做的事情提出第二个意见,这个意见是不完整的,或者做错了.

最初,按照sass-mq Github页面上的说明,我试图使用:

npm install sass-mq --save

这给了我这个错误:

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

    + sass-mq@5.0.0
    updated 1 package and audited 1 package in 1.67s
    found 0 vulnerabilities

环顾四周,我意识到我打算使用它

npm init

..在输入我的'install sass-mq --save'命令之前.

很酷,做到了.下一个错误是这样的:

package name: (nikhil) sass-mq
version: (1.0.0) 
description: 
entry point: (index.js) 
test command: 
git repository: 
keywords: 
author: 
license: (ISC) 
About to write to /Users/nikhil/package.json:

{
  "name": "sass-mq",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "dependencies": {
    "sass-mq": "^5.0.0"
  },
  "devDependencies": {},
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}


Is this OK? (yes) 
darwin:~ nikhil$ npm install sass-mq --save
npm ERR! code ENOSELF
npm ERR! Refusing to install package with name "sass-mq" under a package
**npm ERR! also called "sass-mq". Did you name your project the same
npm ERR! as the dependency you're installing?**

我想这是说我不能使用'sass-mq'(这是包的名称,作为我在本地机器上安装的本地包的名称(?).这里有更多信息.

所以我只是尝试了这个:

**package name: (sass-mq) media-queries-nikhil**
version: (1.0.0) 
description: 
git repository: 
keywords: 
author: 
license: (ISC) 
About to write to /Users/nikhil/package.json:

它似乎工作正常.

我的问题是:这是我应该这样做的正确方法吗?你经常这样做吗?

另外,我收到这些警告 - 可以忽略它们吗?

npm WARN media-queries-nikhil@1.0.0 No description
npm WARN media-queries-nikhil@1.0.0 No repository field.

我正在创建这个问题,所以像我这样寻找类似问题答案的其他人可以找到解释,而不仅仅是他们需要解决问题的命令.我发现了一些类似的问题,但实际上并没有解释发生了什么以及为什么.

感谢阅读,我非常感谢任何帮助:)



1> Abulafia..:

TL; DR:您这样做的方式很好,您不必担心这些警告。

要进一步了解npm为什么存在及其工作方式,请继续阅读。

npm代表节点软件包管理器。软件包是节点生态系统的基础部分-它们的存在是为了让您可以使用其他人的解决方案来解决常见问题。

但是,这可能会造成很大的混乱,因为,因为这是一个开放源代码社区,所以它们都在不同的时间由不同的人发布。另外,您使用的两个不同的软件包实际上可能取决于您完全不了解的第三个软件包,并且有可能它们甚至需要该软件包的不同版本。

正如您已经看到的那样,这有可能变得非常混乱。

npm可帮助您以更易于管理和思考的方式处理这些“依赖性”,但是使用npm并非必需-您可以编写一个节点应用程序,在其中自己组织所有这些不同的文件。但是,这将变得非常混乱,很快,因此至少在99%的情况下并没有真正的优势。还有其他的包管理器-我个人使用yarn,但是他们都试图做类似的事情,因此选择主要是优先考虑的问题,不在本讨论的范围之内。

因此,当您开始一个新项目时,您键入npm init并告诉npm在文件夹中创建一个名为package.json的文件,该文件将帮助您组织这些依赖项。package.json将保存有关您自己的应用程序的信息(本身就是一个程序包),以及您告诉npm您将在自己的项目中将其用作依赖项的程序包的信息。这就是为什么它会问您所有关于软件包名称和描述的问题,因此,如果您发布了它,人们将知道与谁联系,它做什么,它是什么版本等。

仅当您打算发布软件包时,才认真考虑这一点很重要,这对于网站来说是不太可能的,但是在制作图书馆时,这很有可能。但是,正如您已经发现的那样,程序包应该具有唯一的名称,这就是为什么您应该对您的程序包进行一些个性化的命名的原因,这样就不会像尝试命名程序包时那样出现命名冲突软件包与以后要尝试安装的软件包相同。

因此,让我们创建自己的程序包,并安装我们的第一个依赖项(记住,这只是另一个程序包)。我将选择时间戳作为依赖项,因为它既好又小。

首先,您将创建项目目录。这只是一个空的新目录。叫它ts。在ts目录中,输入npm init您的终端并回答其问题(尽管我通常只按回车键),然后在目录中查找,您将看到package.json文件。打开该文件,你会看到所有软件包信息。目前就是这样。

现在回到命令行并输入npm install time-stamp。完成思考后,再次打开package.json,您将在“依赖项”列表中看到引用的时间戳。(从npm 5开始,不再需要使用该--save选项。npm现在将其作为默认值。npm install的--save选项是什么?)

回到目录内部,您还将看到另一个名为package-lock.json的文件和一个名为node_modules的目录。

node_modules目录将包含一个名为时间戳的目录,其中包含使时间戳生效的所有代码。您可能不需要经常查看此处,但是可以查看,如果您查看时间戳目录,您会发现它具有自己的package.json!打开它,看看,它本身具有安装所需的所有信息。你会注意到,它并没有任何相关性,但如果这么做,他们将被安装在您的node_modules与所有依赖,以及...和他们的依赖关系......和他们的...如果你想看到实际效果,请尝试安装测试框架。再次,只是npm install jest

希望现在整个事情开始变得有点道理了...

锁定文件稍微复杂一些。它的作用是确保在将项目部署到新系统时使用完全相同的依赖项集。它之所以需要这样做,是因为npm组织事物的方式可能取决于最新的发行版等,如果您尝试部署应用程序会很烦人,但由于您的依赖项表现出不同的行为而无法正常工作。从您的开发环境出发!

说了这么多,基本上在这个阶段您可以忽略它!这是npm的重要组成部分,但是除非您真的知道自己在做什么,否则不应该直接对其进行编辑。

一旦你已经安装在你的依赖,你将能够requireimport的任何地方在您的项目,而不必担心你的目录结构,它引导到正确的路径。公正require('time-stamp'),它将正常工作!

最后,为达到这一目标做得很好,值得一提的是全局安装。使用-g选项-即npm install time-stamp -g-意味着依赖项将安装在计算机上某个中央的node_modules目录中,而不是安装在项目的node_modules文件夹中。但是,您仍然需要将其链接到您的项目(这样它最终会作为package.json中的依赖项),您可以通过键入来实现npm link time-stamp。就我个人而言,我希望所有模块都在我的项目中是本地的,但这又取决于您的用例,并在某种程度上取决于个人喜好。

这一切都意味着package.json和锁文件的组合完美地表示了node_modules中所有文件,这意味着您不需要将它们包含在git(或其他存储库)中。您可以将存储库下拉至新服务器,只需键入npm install,然后将它们从Internet拖到那里。由于您的依赖项涉及所有文件,因此在您拥有大型项目时,这变得尤为重要,但是从第一天开始,将'node_modules'添加到您的.gitignore是一个好习惯。但是我开始摆脱话题,所以也许我应该在这里结束...

这仅是一个基本介绍,因此我将其保持相当简单,并且我不想创建深入的教程,但是如果您需要澄清我提出的任何观点,请随时发表评论,如果可以的话,我会进行修改!


迄今为止最好的101。你应该写一本书!
推荐阅读
  • 本文介绍了JavaScript进化到TypeScript的历史和背景,解释了TypeScript相对于JavaScript的优势和特点。作者分享了自己对TypeScript的观察和认识,并提到了在项目开发中使用TypeScript的好处。最后,作者表示对TypeScript进行尝试和探索的态度。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 必须先赞下国人npm库作品:node-images(https:github.comzhangyuanweinode-images),封装了跨平台的C++逻辑,形成nodejsAP ... [详细]
  • React 小白初入门
    推荐学习:React官方文档:https:react.docschina.orgReact菜鸟教程:https:www.runoob.c ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 微信民众号商城/小顺序商城开源项目介绍及使用教程
    本文介绍了一个基于WeiPHP5.0开发的微信民众号商城/小顺序商城的开源项目,包括前端和后端的目录结构,以及所使用的技术栈。同时提供了项目的运行和打包方法,并分享了一些调试和开发经验。最后还附上了在线预览和GitHub商城源码的链接,以及加入前端交流QQ群的方式。 ... [详细]
  • loader资源模块加载器webpack资源模块加载webpack内部(内部loader)默认只会处理javascript文件,也就是说它会把打包过程中所有遇到的 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
author-avatar
完美美容店
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有