我下载了最新的node.js Win安装程序。并发现node -v
有效!现在我正在尝试安装快递。
我尝试过两种方法:
npm install express -g
npm install-g
但是这两种方法都不起作用。任何人都可以给我一个暗示吗? (我已经以管理员身份执行了cmd
,但它仍无效。)
C:\microblog>node -v
v0.10.22
C:\microblog>npm install -g
npm http GET https://registry.npmjs.org/express
npm http 304 https://registry.npmjs.org/express
npm http GET https://registry.npmjs.org/range-parser/0.0.4
...
npm ERR! not a package C:\Users\wilsonliu\AppData\Roaming\npm-cache\pause\0.0.1\
package.tgz
npm ERR! Error: EPERM, lstat 'C:\Users\wilsonliu\AppData\Roaming\npm\node_module
s\express\node_modules\connect\node_modules\qs\.npmignore'
调试txt:
0 info it worked if it ends with ok
1 verbose cli [ 'C:\\Program Files (x86)\\nodejs\\\\node.exe',
1 verbose cli 'C:\\Program Files (x86)\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli 'install',
1 verbose cli 'express',
1 verbose cli '-g' ]
2 info using npm@1.3.14
3 info using node@v0.10.22
4 verbose node symlink C:\Program Files (x86)\nodejs\\node.exe
5 verbose cache add [ 'express', null ]
6 verbose cache add name=undefined spec="express" args=["express",null]
7 verbose parsed url { protocol: null,
7 verbose parsed url slashes: null,
7 verbose parsed url auth: null,
7 verbose parsed url host: null,
7 verbose parsed url port: null,
7 verbose parsed url hostname: null,
7 verbose parsed url hash: null,
7 verbose parsed url search: null,
7 verbose parsed url query: null,
7 verbose parsed url pathname: 'express',
7 verbose parsed url path: 'express',
7 verbose parsed url href: 'express' }
8 silly lockFile f3c62de4-express express
9 verbose lock express C:\Users\wilsonliu\AppData\Roaming\npm-cache\f3c62de4- express.lock
10 silly lockFile f3c62de4-express express
11 silly lockFile f3c62de4-express express
12 verbose addNamed [ 'express', '' ]
13 verbose addNamed [ null, '*' ]
答案 0 :(得分:1)
您可以删除C:\Users\wilsonliu\AppData\Roaming\npm-cache
中的所有内容并尝试吗?
如果您之前使用或不使用sudo运行npm,则每次锁定文件创建都可能导致此类错误。
此外,最好避免在安装节点包时使用sudo
。
您可以在安装节点时指定用户主文件夹下的位置。即使您以管理员身份安装了node / npm,也应该将chown
节点安装目录(主要是/usr/local/node
)考虑给您的本地用户:sudo chown <user> /usr/local
和sudo chown -R <user> /usr/local/*
。