Windows中的"未知的stdin文件类型"错误

raf*_*uto 12 windows node.js electron

我一直在努力解决这个错误2天,并且无法理解为什么电子渲染器process.stdin在Windows操作系统中失败.

如何重现:

键入npm install devtool -g 然后键入devtool 控制台型内process.stdin会有错误消息将两个错误,一个是在线127和其它在线128在C:\ Users \用户拉斐尔\应用程序数据\漫游\ NPM \node_modules\devtool \node_modules \电子-prebuilt\dist\resources\atom.asar\renderer\lib\init.js(devtool update 2.x)

Error: Implement me. Unknown stdin file type!

C:\Users\rafael\AppData\Roaming\npm\node_modules\devtool\node_modules\electron-prebuilt\dist\resour…:127 Error: Implement me. Unknown stdin file type!(…)(anonymous function) @ C:\Users\rafael\AppData\Roaming\npm\node_modules\devtool\node_modules\electron-prebuilt\dist\resour…:127Module._compile @ module.js:425Module._extensions..js @ module.js:432Module.load @ module.js:356Module._load @ module.js:313Module.runMain @ module.js:457startup @ node.js:151(anonymous function) @ node.js:1007 C:\Users\rafael\AppData\Roaming\npm\node_modules\devtool\node_modules\electron-prebuilt\dist\resour…:128 Error: Implement me. Unknown stdin file type! at process.stdin (node.js:747) at hookProcess (C:\Users\rafael\AppData\Roaming\npm\node_modules\devtool\lib\preload.js:117) at C:\Users\rafael\AppData\Roaming\npm\node_modules\devtool\lib\preload.js:29 at Object.<anonymous> (C:\Users\rafael\AppData\Roaming\npm\node_modules\devtool\lib\preload.js:129) at Module._compile (module.js:425) at Object.Module._extensions..js (module.js:432) at Module.load (module.js:356) at Function.Module._load (module.js:313) at Module.require (module.js:366) at require (module.js:385)(anonymous function) @ C:\Users\rafael\AppData\Roaming\npm\node_modules\devtool\node_modules\electron-prebuilt\dist\resour…:128Module._compile @ module.js:425Module._extensions..js @ module.js:432Module.load @ module.js:356Module._load @ module.js:313Module.runMain @ module.js:457startup @ node.js:151(anonymous function) @ node.js:1007

jlv*_*ero 3

我遇到了同样的问题。

首先,我认为 devtool 作为 REPL 不需要标准输入,并且是 Windows 构建中的一个简单错误。GitHub 存储库所有者修复了它,只是在启动时忽略 stdin,但是,正如您所发现的,devtool 已损坏,您无法在 Windows 中使用 stdin 执行任何操作。

作为概念证明,我创建了一个超越 devtool REPL 的简单示例:

这段代码不起作用。

//test.js
var readline = require('readline');
var rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
  terminal: true
});

rl.on('line', function(line){
    console.log(line);
})
Run Code Online (Sandbox Code Playgroud)

devtool test.js < input.txt

Error: Implement me. Unknown stdin file type!
Run Code Online (Sandbox Code Playgroud)

Windows 7 x64,SO 管理员权限,Node v5.10.0,npm v3.8.3 DevTool v1.9.1。

我在你的 github问题中留下了评论,但已关闭,所以我打开了一个新的评论