Javascript 更改节点REPL中的目录不工作?
就在早些时候,我发布了我的问题: 我有一个文件hello.js,位于/Users/MyUser/Desktop/Node中/ 我可以看到我的默认目录是/Users/MyUser/ 好的,我知道我需要更改我的工作目录。到目前为止,我能找到的是使用process.chrdir('/Users/MyUser/Desktop/Node/)代码> 很酷,这是可行的,但是现在当我离开REPL shell时,目录会重置 回答我问题的人说我需要运行Javascript 更改节点REPL中的目录不工作?,javascript,node.js,Javascript,Node.js,就在早些时候,我发布了我的问题: 我有一个文件hello.js,位于/Users/MyUser/Desktop/Node中/ 我可以看到我的默认目录是/Users/MyUser/ 好的,我知道我需要更改我的工作目录。到目前为止,我能找到的是使用process.chrdir('/Users/MyUser/Desktop/Node/) 很酷,这是可行的,但是现在当我离开REPL shell时,目录会重置 回答我问题的人说我需要运行>node init以及以后的npm安装--save 我的第一个问题
>node init
以及以后的npm安装--save
我的第一个问题:我已经运行了node init,并且看到我可以创建这个package.json文件,这到底是做什么的
第二:有人告诉我需要增加依赖性。有人能给我解释一下节点术语的含义吗?依赖性是否只是指我希望节点包含的文件夹?是否要在桌面上添加此节点文件夹以运行脚本
我目前正在尝试学习LearnyYouNode课程,但是我不想将所有这些测试文件都保存在我的/User/MyUser目录中,因此任何建议都将不胜感激
感谢这与node.js无关,而是Unix设计中固有的(这反过来会影响其他操作系统上shell的设计) 进程从其父环境继承值,但其环境是不同的 对流程环境如何工作的简洁描述有时会产生意想不到的行为:您无法更改父环境。它是以这种方式设计的,显然是出于安全原因 这意味着,当您更改进程中的工作目录并退出该进程时,shell的工作目录不会受到影响。实际上,即使进程(在本例中为节点REPL)正在运行,shell的工作目录也不会受到影响 写shell脚本的人经常会问这个问题,他们想写一个可以刻录到某处的脚本。但是,编写其他语言如Perl、Tcl、Ruby等(甚至是C)的人提出这个问题也是很常见的 无论使用何种语言,这个问题的答案总是一样的:不可能从另一个程序/脚本/进程CD 我不确定Windows是如何处理它的,因此可能在那里执行。但这在Unixen上是不可能的 我已经运行了>node init并看到我可以创建 这个package.json文件,它到底是做什么的
npm init
用于以交互方式创建package.json文件。这将向您提出一系列问题,然后为您编写一个package.json
package.json
只是一个处理项目依赖关系并保存与项目相关的各种元数据的文件[项目描述、版本、许可证信息等]
有人告诉我需要添加依赖项。能找个人吗
向我解释这在节点术语中的含义
假设您正在构建一个依赖于多个NPM模块的应用程序,您可以通过以下方式在package.json文件中指定它们:
"dependencies": {
"express": "2.3.12",
"jade": ">= 0.0.1",
"redis": "0.6.0"
}
现在执行npm安装
将安装一个包,以及它所依赖的任何包
套餐是:
npm安装
。您是否希望在package.json中包含这个新安装的包完全由您决定。您还可以决定这个新安装的包将如何显示在您的包中。json
npm install <packageName> [--save|--save-dev|--save-optional]:
--save: Package will appear in your dependencies.
--save-dev: Package will appear in your devDependencies.
--save-optional: Package will appear in your optionalDependencies.
Node REPL只是提供了一种交互运行JavaScript并查看结果的方法。它可以用于调试、测试或只是尝试。
process.cwd()
指向启动REPL本身的目录。您可以使用process.chdir('/path')更改它,但是一旦关闭REPL会话并重新启动,它将始终将process.cwd()
重新实例化到启动它的目录
如果您正在node project1中安装一些包/依赖项,并且认为这些依赖项对node project2也很有用
- 为project2再次安装它们(以获得独立的
目录)节点\u模块
- 全局安装它们[使用-g标志]。看
- project2中的参考包作为
var referencedependency=require('/home/User/project1/node_modules/')
process.chdir('/home/User/project1/node_modules/')
,并引用为
js文件中的var referencedependency=require(“”)
不起作用
>process.chdir('/Users/MyUser/Desktop/Node/)代码>仅更改该特定REPL会话的工作目录
希望有帮助 谢谢你,讽刺的是,我正要亲自来回答我的问题。。在我考虑node之前,我必须在目录中,node只是我的计算机现在可以使用的运行时环境。我现在要去进一步了解js。再次感谢!
var express = require('express');