Tag: 命令行

使用npm命令时,找不到模块“npmlog”错误信息

今天是我第一份工作的第一天,通过更新我的Mac(OSX)上的节点和npm来设置我的开发环境之后,我似乎破了一些东西。 每次我尝试在我的命令行中使用npm(npm init,npm install等)时,我得到这个错误信息: module.js:339 扔呃; 错误:找不到模块'npmlog' 在Function.Module._resolveFilename(module.js:337:15) 在Function.Module._load(module.js:287:25) 在Module.require(module.js:366:17) 在require(module.js:385:17) 在/usr/local/lib/node_modules/npm/bin/npm-cli.js:20:13 在对象。 (/usr/local/lib/node_modules/npm/bin/npm->cli.js:76:3) 在Module._compile(module.js:425:26) 在Object.Module._extensions..js(module.js:432:10) 在Module.load(module.js:356:32) 在Function.Module._load(module.js:311:12) 没有太多的错误消息,并且堆栈跟踪也无法帮助我。 以下是我所尝试的: search了一下Stackoverflow,虽然也有类似的问题,但是人们已经可以使用npm <something>来解决他们的问题,我不能这样做。 卸载并重新安装npm – 没有工作,因为我不能使用npm命令,所以像sudo npm uninstall npm -g这样的东西不起作用。 从.npm目录中删除npmlog目录,然后再次将github repo直接克隆到该目录。 希望你们之前遇到过这个问题,或者对如何解决这个问题有个想法。 任何帮助表示赞赏。

运行节点bin脚本时确定命令行工作目录

我正在创build一个节点命令行界面。 它是全局安装的,并使用bin文件来执行。 我打算在我正在处理的文件的根目录下打开一个命令窗口,然后运行命令,但是我一直无法确定当前的工作目录,因为process.cwd()正在返回节点包的目录。 我最初认为,因为代码是使用batch file作为包装来执行的(这就是bin文件如何在没有节点的情况下执行的),那么这是不可能的,但是咖啡脚本可以做到这一点。 我看了一下咖啡脚本源,但不能遵循它(没有足够的经验)。 要自己testing一下,用这个package.json文件创build一个包: { "name": "test-package", "version": "1.0.0", "bin": { "test-package": "./bin/test-package" }, "main": "/lib/test" } 这个testing包文件在bin中: #!/usr/bin/env node var path = require('path'); var fs = require('fs'); var lib = path.join(path.dirname(fs.realpathSync(__filename)), '../lib'); require(lib + '/test'); 任何人都可以点亮这个。 然后尝试获取lib / test中的命令行目录。