Articles of node.js

NPM的环境variables不工作在Windows?

在我的package.json文件中,我正尝试使用版本化来编译更less的代码,如下所示: "scripts" { … "build:css": "lessc –source-map css/index.less build/$npm_package_name.$npm_package_version.css", … } 问题是输出文件回来了 $npm_package_name.$npm_package_version.css 代替 my-project.1.0.0.css 我读过你可以做 %npm_package_name%.%npm_package_version%.css 但是这并没有为我工作。 任何人都知道为什么variables不工作? 这些variables在Windows中是否可以工作? 如果是这样,我该如何让他们工作?

创build自我可执行的node.js服务器

我想创build一个可执行的bash文件,将执行命令node app.js – 目标是有一个可执行文件,可以打开本地计算机上的节点已经安装,可执行文件在项目目录中(这是一个express.js应用程序)。 我试图在Mac上做,我写了一个.command文件,使它可执行,并添加命令。 问题是,该进程立即closures,因为terminal似乎自动添加exit; 在最后的命令之后。 我也想在Windows机器上做到这一点。 我不需要在一个可执行文件中的整个应用程序,只有select双击文件,而不是打开terminal,手动编写这个简单的命令。 任何想法如何实现这一目标?

如何修复错误:在Windows 10上产生UNKNOWN和node.js v7.8.0?

当我尝试运行spawn时,我在Windows 10上出现错误 var spawn = require('child_process').spawn; var child = spawn(path.join(__dirname, '../bin/run.js'), {}, {env: env}); child.stdout.pipe(process.stdout); child.stderr.pipe(process.stderr); 这是错误信息。 我无法解决这个问题。 [14:58:15] Error: spawn UNKNOWN 我安装了nvs节点,似乎对其他一切正常工作。 所以我想出了它的run.js这是一个节点脚本与shebang,但这不适用于Windows。 我试着改变它spawn('node run.js')但现在我得到了。

Node.js – 将数据缓冲到Ffmpeg

我使用Node.js和Ffmpeg来创buildanimation。 因为我试图避免第三方的AVI / MP4parsing器,我决定输出animation作为原始rgb24数据文件,然后使用一些程序将其转换为MP4文件。 我发现Ffmpeg是免费的,开源可以做到这一点。 所以,我做了一个Node.js应用程序,它分配一个大小为1920 x 1080 x 3 (宽度乘以高度乘以每个像素的字节数)的Buffer ,然后我创build了一个渲染上下文库,最后我逐帧animation并保存连续地在一个二进制文件中使用(使用fs模块)。 然后,我调用Ffmpeg将其转换为MP4文件,它的作品非常好。 animation非常容易制作,而Ffmpeg正确地完成了它的工作。 但是,唯一的问题是因为它非常慢,吃硬盘上的空间。 我想创build很长的animation(超过一个小时)。 最后的mp4文件相对较小,但原始video文件非常大。 大约百分之九十的每一帧都是黑色像素,所以Ffmpeg很好,但是原始文件不能被压缩,有时需要100亿字节。 另外,还有很多不必要的双重处理相同的数据。 首先我在Node.js中处理它以将数据保存到文件,然后Ffmpeg读取它将其转换为mp4。 有很多不必要的工作。 所以,我正在寻找一种方法(我敢肯定,这是可能的,但我还没有find一种方法来)输出原始video数据(一次一帧)到Ffmpeg进程(没有保存任何东西到硬盘上)。 我的目标是做到以下几点: 打开Ffmpeg进程 在Node.js中渲染一个帧 输出原始字节stream到Ffmpeg 等待Ffmpeg编码并附加到mp4文件 让Ffmpeg等待我的Node.js进程渲染下一帧 有没有办法实现它? 我真的没有看到发布代码的理由,因为我现在的代码与我在这里问的问题无关。 我并不苦于语法错误或实现问题 。 不,我只是不知道哪些parameter passing给Ffmpeg过程 ,以达到我已经解释过的。 我已经在文档中查找,找出哪些参数,我需要传递给Ffmpeg进程,以便让它从stdin而不是从文件读取原始数据,也等待,直到我的Node.js进程渲染下一帧(以便禁用时间限制),因为渲染一个帧可能需要超过24小时。 因此,Ffmpeg进程应该等待没有时间限制。 但是,我在文档中没有find任何有关它的信息。 我知道如何从Node.js和类似的技术文件写入stdin,所以不需要解释它。 唯一的问题在这里: 哪些parameter passing给Ffmpeg? 我是否需要使用一些特殊的选项创buildFfmpeg进程(使用child_process )? 先谢谢你。 请放心,这是我的第一个问题! 🙂

节点console.log行为和窗口标准输出

在Windows中尝试redirect输出forms的node.js脚本时,我注意到了奇怪的行为。 这种行为的最小可重现的例子如下: 从Windows控制台(cmd.exe): c:\> node -e console.log('hello') hello 从Powershell: PS C:\> node -e console.log('hello') PS C:\> 也就是说,它不用写任何东西而退出控制台。 这是一个问题,因为当我尝试将输出redirect到一个文件,没有什么是写,例如 node -e console.log(123) > temp.txt 正在创build一个名为temp.txt的空文件。 有什么关于如何节点写console.out到stdio?

Windows Azure Node.js SDK

我想知道如何获得使用Windows Azure Node.js SDK的继续令牌? 例如使用SDK我现在做这个来从表中检索数据: var tableService = azure.createTableService(); tableService.getTable('UsersUserFacebookActions', function (error) { if (error === null) { var query = azure.TableQuery .select() .from('UsersUserFacebookActions') .where('PartitionKey eq ?', userID) .and('Kind eq ?', 'User') .and('Deleted eq ?', 'false'); tableService.queryEntities(query, function (error, userEntities) { if (error === null && userEntities.length > 0) { // check to see if […]

NPM安装(Windows)引发.SLN错误…?

我正在使用Node.js(和其他一些节点模块),现在我已经在多个不同的项目中遇到了这个问题。 有很多(不是全部,但很多)的节点模块,当我尝试安装一个模块时,我得到了类似的错误: C:\…\.node-gyp\0.8.16\deps\uv\include\uv.h(55): fatal error C1083: Cannot open include file: 'stdint.h': No such file or directory [C:\…\AppData\Roaming\npm\node_modules\soap\node_modules\node-expat\build\binding.sln] Project : warning PRJ0018: The following environment variables were not found: [C:\…\AppData\Roaming\npm\node_modules\soap\node_modules\node-expat\build\binding.sln] 除了巧合的频率,Node-Gyp似乎与它有关,我认为…但是我找不到任何可能导致这种情况的东西。 我在跑: -Node 0.8.x (Which I need for one of our custom modules), -NPM 1.1.69 -Windows 7 x86 我正在尝试使用哪些模块的示例: -npm install soap -npm install nodetime

NodeJS,Windows,wmic stdin

我在NodeJS中遇到了Windows程序WMIC.exe(用于查询Windows Management Instrumentation)的问题。 我可以产生一个wmic.exe进程,但它不会输出任何东西或接受任何input。 但是,如果我将stdin设置为null,它将正确运行,我会收到输出。 var spawn = require('child_process').spawn; var wmic = spawn('wmic', [], {stdio: ['ignore']}); wmic.stdout.on('data', function(data) { console.log('Data received:' + data); }); wmic.on('close', function(code) { console.log('Spawned process ended with code: ' + code); }); 我想交互使用wmic.exe,它支持,保持打开,所以我不必为每个WMI查询重复启动它。 其他人也有与wmic.exe类似的问题,但他们只想捕获一个单一的查询输出,所以有一个null stdin无关紧要。 更新 如果我做以下… var spawn = require('child_process').spawn; var wmic = spawn('wmic', []); wmic.stdout.on('data', function(data) { console.log('Data received:' […]

在Windows上安装npm模块时,“找不到模块”

我是NodeJS的新手。 我想在Windows 8上使用npm。 我已经安装使用巧克力 , cinst nodejs.install (版本0.10.17 )。 我以pipe理员身份安装(并希望以普通用户身份运行npm)。 节点本身似乎工作,我可以使用REPL来运行简单的程序。 如果我尝试使用npm安装一些东西,我得到cannot find module : > node npm install express module.js:340 throw err; ^ Error: Cannot find module 'C:\Users\Klas\Documents\My Dropbox\mina egna\tech\node\webserver\npm' at Function.Module._resolveFilename (module.js:338:15) at Function.Module._load (module.js:280:25) at Function.Module.runMain (module.js:497:10) at startup (node.js:119:16) at node.js:901:3 我已经阅读了Nodejs在Windows上找不到安装的模块的答案? 但不幸的是,我还不清楚我必须做什么。 我已经尝试设置NODE_PATH : 在试图按照这个答案 ,我已经尝试将其设置为C:\Users\Klas\AppData\Roaming\npm\node_modules (但我必须自己创buildnpm和子文件夹node_modules ) 我已经尝试创build一个文件夹c:\node\node_module (根据这个build议 […]

如何在Node for Windows中启用和声?

据我了解,下面的脚本应该用–harmony标志来编译。 // test.js function* values() { for (var i = 0; i < arguments.length; i++) { yield arguments[i]; } } 例如, node –harmony test.js 但是,我所得到的是: test.js:1 unction (exports, require, module, __filename, __dirname) { function* values() ^ SyntaxError: Unexpected token * at Module._compile (module.js:439:25) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Function.Module.runMain (module.js:497:10) […]