我一直在尝试在使用Node.js时写入文件,但没有成功。我该怎么做?

我试图总结我对最流行的JavaScript包管理器、打包器和任务执行器的了解。如果我错了,请纠正我:

npm和bower是软件包经理。他们只是下载依赖项,不知道如何自己构建项目。他们知道的是在获取所有依赖项后调用webpack/gulp/grunt。bower类似于npm,但构建了一个扁平的依赖树(不像npm递归地执行)。这意味着npm获取每个依赖项的依赖项(可能会多次获取相同的依赖项),而bower希望您手动包含子依赖项。有时bower和npm分别用于前端和后端(因为每个兆字节在前端可能很重要)。gulf和gulf是任务执行器,可以自动完成所有可以自动化的任务(即编译CSS/Sass、优化图像、制作捆绑包和缩小/透明文件)。咕噜vs咕噜(就像maven vs gradle或配置vs代码)。Grunt基于配置单独的独立任务,每个任务打开/处理/关闭文件。Gulp需要更少的代码,并且基于节点流,这允许它构建管道链(不重新打开相同的文件),并使其更快。webpack(webpack-dev-server)-对我来说,它是一个任务运行器,可以热重新加载更改,让你忘记所有JS/CSS观察者。npm/bower+插件可能会取代任务运行器。他们的能力经常交叉,所以如果你需要在npm+插件上使用gulp/grunt,就会有不同的含义。但任务运行器对于复杂的任务来说无疑是更好的(例如,“在每个构建上创建捆绑包,从ES6到ES5转换,在所有浏览器模拟器上运行它,制作屏幕截图并通过ftp部署到dropbox”)。browserify允许为浏览器打包节点模块。browserify vs node的需求实际上是AMD vs CommonJS。

问题:

什么是webpack和webpack开发服务器?官方文档说它是一个模块打包器,但对我来说,它只是一个任务执行器。有什么不同?你会在哪里使用browserify?我们不能对节点/ES6导入执行同样的操作吗?你什么时候会对npm+插件使用gulp/grunt?当您需要使用组合时,请提供示例

我刚刚安装了Node.js和NPM(节点包管理器)

我安装了NPM以访问其他Node.js模块。

在我安装Node.js和NPM之后,我注意到这两个版本都不可用。

我想知道:如何将Node.js、NPM和我的Node.js模块升级到最新版本?

我需要卸载Node.js和NPM并重新安装最新版本吗?

这是到目前为止我所做尝试的链接。此链接是npm的一部分。

我想知道如何在JavaScript中获取img和div等HTML元素的X和Y位置。

我对这类东西很陌生,但最近我听到了很多关于Node.js有多好的消息。考虑到我非常喜欢使用jQuery和JavaScript,我不禁想知道如何决定何时使用Node.js。

从过去几天我做的所有作业中,我得到了以下信息。节点.js

是一个命令行工具,可以作为常规web服务器运行,并允许运行JavaScript程序利用了出色的V8 JavaScript引擎当你需要同时做几件事时是基于事件的,所以所有类似Ajax的精彩内容都可以在服务器端完成让我们在浏览器和后端之间共享代码让我们谈谈MySQL

我遇到的一些来源是:

深入Node.js–介绍和安装了解NodeJS按示例列出的节点(存档.is)让我们制作一个Web应用程序:NodePad

考虑到Node.js几乎可以在Amazon的EC2实例上开箱即用,我试图了解Node.js需要什么类型的问题,而不是PHP、Python和Ruby等强大的王者。我知道这确实取决于一个人对语言的专业知识,但我的问题更多地属于一般范畴:什么时候使用特定的框架,它特别适合什么类型的问题?

用于退出的命令是什么?(即终止Node.js进程)

npm5今天发布,其中一个新特性包括通过创建package-lock.json文件进行确定性安装。

这个文件应该保存在源代码管理中吗?

我假设它类似于yarn.lock和composer.lock,它们都应该保存在源代码控制中。

复制对象意味着什么?什么是复制构造函数和复制赋值运算符?我什么时候需要自己申报?如何防止复制对象?

我从另一个项目中复制了package.json,现在想将所有依赖项都升级到最新版本,因为这是一个新项目,如果出现问题,我不介意修复。

最简单的方法是什么?

我知道的最好的方法是运行npm info express版本,然后手动更新package.json中的每个依赖项。一定有更好的办法。

{
  "name": "myproject",
  "description": "my node project",
  "version": "1.0.0",
  "dependencies": {
    "express": "^3.0.3", // how do I get these bumped to latest?
    "mongodb": "^1.2.5",
    "underscore": "^1.4.2"
  }
}

有关纱线特定的解决方案,请参阅本堆栈溢出线程。

如何查找(并终止)侦听/使用TCP端口的进程?我在macOS上。

有时,在崩溃或一些错误之后,我的Rails应用程序会锁定端口3000。我用ps-ef找不到它。。。

运行时

rails server

我明白了

Address already in use - bind(2) (Errno::EADDRINUSE)

停止Node.js进程时也会出现同样的问题。即使在进程停止且应用程序停止运行后,端口3000仍被锁定。再次启动应用程序时

Address already in use (Errno::EADDRINUSE)