我是一个新手,所以请包括链接到网址或解释术语,以便我能理解。
我已经设法通过终端在Mac OS(10.13.3)上安装了'npm',并使用它安装了一些软件包,比如SASS。
我现在正在尝试使用NPM安装sass-mq。我想我已经设法安装了它,但我想要一个第二意见,我可能做了什么不完整,或错误的时候做。
npm install sass-mq --save
npm WARN saveError ENOENT: no such file or directory, open '/Users/<username>/package.json'
npm WARN enoent ENOENT: no such file or directory, open '/Users/<username>/package.json'
npm WARN <username> No description
npm WARN <username> No repository field.
npm WARN <username> No README data
npm WARN <username> 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?**
**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.
感谢阅读,我真的非常感谢您对此的帮助:)
你做的很好,你不必担心那些警告。
要想更深入地了解国家预防机制存在的原因及其工作方式,请继续阅读。
npm代表节点包管理器。包是节点生态系统的一个基本部分--它们的存在是为了允许您使用其他人的解决方案来解决常见问题。
然而,这可能会变得非常混乱,因为,因为这是一个开源社区,它们都是由不同的人在不同的时间发布的。此外,您使用的两个不同的包实际上可能依赖于您完全不知道的第三个包,而且它们可能甚至需要该包的不同版本。
正如您已经看到的,这有可能变得非常混乱。
npm帮助您以一种更容易管理和思考的方式处理这些“依赖关系”,然而使用npm并不是必需的--您可以编写一个节点应用程序,在那里您自己组织所有这些不同的文件。但是,这会很快变得非常混乱,所以至少在99%的情况下没有真正的优势。还有其他包管理器--我个人使用yarn,但他们都在尝试做类似的事情,所以选择主要是一个偏好问题,不在本文讨论的范围之内。
因此,让我们创建自己的包,并安装我们的第一个依赖项(记住,它只是另一个包)。我将选择时间戳作为一个依赖项,因为它很好而且很小。
首先,您将创建项目目录。这只是一个空的新目录。我们称之为ts
。在ts目录中,在终端中键入npm init
并回答其问题(尽管我通常只需按return to They all),然后查看目录中的内容,您将看到package.json文件。打开该文件,您将看到您的所有包信息。现在就这样了。
现在回到命令行,输入npm install time-stamp
。当它完成思考后,再次打开package.json,您将看到“dependencies”列表中引用的时间戳。(从npm 5开始,不再需要使用--save
选项。npm现在假定这是默认值。npm安装的--save选项是什么?)
回到目录内部,您还将看到另一个名为package-lock.json的文件和一个名为node_modules的目录。
node_modules目录将包含一个名为time-stamp的目录,该目录包含使time-stamp工作的所有代码。您可能不需要经常在这里查看,但您可以,如果您查看时间戳目录,您会看到它有自己的package.json!打开它看一看,里面有它自己安装所需的所有信息。您将注意到它没有任何依赖项,但如果有,它们将安装在您的node_modules中,并包含它们的所有依赖项...以及它们的依赖关系...他们的...如果您想看到这一点,请尝试安装测试框架'jest。同样,只需npm安装jest
。
希望整件事开始有意义了,现在...
最后,值得一提的是全局安装。使用-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中是一个好习惯。但我开始偏离话题了所以也许我该在这里结束...
这只是一个基本的介绍,所以我把它保持得相当简单,我不想创建一个深入的教程,但如果您需要澄清我所做的任何一点,请随意评论,我会做编辑,如果我可以的话!
我在节点Js中工作。当我尝试加载文件时:moviedata.json,如下行: 显示: 错误:ENOENT:没有这样的文件或目录,打开'./moviedata.json'在错误(本机)在Object.fs.open同步(fs.js:640: 18)在Object.fs.readFileSync(fs.js:508: 33)在对象。(/用户/dortiz/文档/NodeJS/pruebas/zw/a
方法总是给出这样的错误: 打开失败:ENOENT(没有这样的文件或目录)
错误:警告:require_once(…/tcpdf/config/lang):无法打开流:在第33行的C:\xampp\htdocs\jmb_system\anggerik\printunitstmt.php中没有这样的文件或目录 致命错误:require_once():失败打开需要'…/tcpdf/config/lang'(include_path='.; C:\xampp\php\PEAR'
免责声明:在堆栈溢出中也有类似的问题,但这些问题是他们各自的答案,既不适合这个问题,也不帮助解决他们的答案。这些问题是不同的,答案只适合那些具体的问题,而不是通用的。经过长时间的挣扎,他们没有任何帮助,我想了两次我要发布这个问题来寻求帮助。如果有人不喜欢这个问题或不理解,请沟通并得到澄清,而不是勉强设置标志来关闭这个问题;最好你可以忽略并传递...谢谢你! 需求:我使用Zend框架的谷歌日历API
问题内容: 我有一个Nodejs Web应用程序,当前正在服务器上成功运行。现在,我正在尝试在开发服务器上设置本地副本。 我目前已经像生产服务器中一样安装了Nodejs,NPM和Mongo,但是当我尝试启动节点服务器时出现以下错误 是什么导致此问题? 问题答案: 您的应用希望在处找到一个文件,但该文件不存在(这意味着)。因此,您要么需要创建预期的目录结构,要么配置您的应用程序,使其在的正确目录中查
问题内容: 我只想将socket.io安装到位于3.chat文件夹中的项目中。但是当我运行以下命令时,它显示以下警告。并且它没有在我的项目文件夹中创建一个node_modules目录。如何解决这个问题? 问题答案: 您是否创建了 package.json 文件?也许先运行此命令。 它在您的文件夹中创建一个 package.json 文件。 然后跑 在确保您的模块保存为您的依赖关系 的package