我正在尝试使用命令npm install -g typescript
安装typescript,并返回此错误:
npm ERR! Error: EACCES: permission denied, access '/usr/lib/node_modules'
npm ERR! at Error (native)
npm ERR! { Error: EACCES: permission denied, access '/usr/lib/node_modules'
npm ERR! at Error (native)
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'access',
npm ERR! path: '/usr/lib/node_modules' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! Linux 4.4.0-93-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "-g" "typescript"
npm ERR! node v6.11.2
npm ERR! npm v3.10.10
npm ERR! path npm-debug.log.1024969454
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall open
npm ERR! Error: EACCES: permission denied, open 'npm-debug.log.1024969454'
npm ERR! at Error (native)
npm ERR! { Error: EACCES: permission denied, open 'npm-debug.log.1024969454'
npm ERR! at Error (native)
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'open',
npm ERR! path: 'npm-debug.log.1024969454' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! Please include the following file with any support request:
npm ERR! /npm-debug.log
jramirez@jramirez:/$ ^C
jramirez@jramirez:/$ npm install typescript
npm WARN checkPermissions Missing write access to /
/
└── typescript@2.5.2
npm WARN enoent ENOENT: no such file or directory, open '/package.json'
npm WARN !invalid#1 No description
npm WARN !invalid#1 No repository field.
npm WARN !invalid#1 No README data
npm WARN !invalid#1 No license field.
npm ERR! Linux 4.4.0-93-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "typescript"
npm ERR! node v6.11.2
npm ERR! npm v3.10.10
npm ERR! path /
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/'
npm ERR! at Error (native)
npm ERR! { Error: EACCES: permission denied, access '/'
npm ERR! at Error (native) errno: -13, code: 'EACCES', syscall: 'access', path: '/' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! Linux 4.4.0-93-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "typescript"
npm ERR! node v6.11.2
npm ERR! npm v3.10.10
npm ERR! path npm-debug.log.2387664261
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall open
npm ERR! Error: EACCES: permission denied, open 'npm-debug.log.2387664261'
npm ERR! at Error (native)
npm ERR! { Error: EACCES: permission denied, open 'npm-debug.log.2387664261'
npm ERR! at Error (native)
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'open',
npm ERR! path: 'npm-debug.log.2387664261' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! Please include the following file with any support request:
npm ERR! /npm-debug.log
另外,我也运行npm install typescript
(没有-g),但没有'工作,或存在任何其他方式来安装打字稿?
我的操作系统是Linux Ubuntu 16.04。
我很少使用node
而且不知道如何解决这个问题。
我的问题是:确切地说,哪些目录需要permmisions?
答案 0 :(得分:105)
不建议在npm install中使用sudo,请按照npmjs官方文档中的步骤进行操作:)
为全局安装创建一个目录:
mkdir ~/.npm-global
配置npm以使用新目录路径:
npm config set prefix '~/.npm-global'
打开或创建〜/ .profile文件并添加以下行:
export PATH=~/.npm-global/bin:$PATH
返回命令行,更新系统变量:
source ~/.profile
测试:在不使用sudo的情况下全局下载软件包。
npm install -g typescript
来源:https://docs.npmjs.com/getting-started/fixing-npm-permissions
答案 1 :(得分:17)
在ubuntu中安装全局包时,在写入usr/bin
文件夹时需要特殊的写入权限。这是出于安全原因。
因此,每次安装全局包时,请使用:
sudo npm install -g [package-name]
针对您的具体案例:
sudo npm install -g typescript
当您在没有-g
的情况下进行尝试时,您所做的就是在您所在的任何文件夹中本地安装软件包:
所以:npm install typescript
会在您所在的文件夹中创建一个node_modules
文件夹。
答案 2 :(得分:5)
我在全球范围内安装webpack服务器时遇到同样的问题,使用步骤解决了我的问题,我会为你工作。
上面提到的步骤:在开始之前备份计算机。
为全局安装创建一个目录:
<强> 1。 mkdir ~/.npm-global
强>
配置npm以使用新目录路径:
<强> 2。 npm config set prefix '~/.npm-global'
强>
打开或创建〜/ .profile文件并添加以下行:
第3。 export PATH=~/.npm-global/bin:$PATH
强>
返回命令行,更新系统变量:
<强> 4。 source ~/.profile
强>
测试:在不使用sudo的情况下全局下载软件包。
npm install -g jshint
代替步骤2-4,您可以使用相应的ENV变量(例如,如果您不想修改〜/ .profile):
NPM_CONFIG_PREFIX=~/.npm-global
答案 3 :(得分:0)
1)转到目录“ / usr / local / lib / node_modules ”
2)单击该文件夹,然后右键单击“获取信息”
3)单击右下角的锁
4)输入您的窗口密码以解锁
5)选中车轮和所有人的值,以阅读和写入
6)返回您的终端并尝试再次安装Typescript
答案 4 :(得分:0)
不太确定这是否可以解决此问题,但是我希望这可以帮助其他已经尝试过以下操作的类似情况的人:
node_modules
文件夹的正确权限,没有发现任何错误sudo npm install <package>
的情况下使用-g
(无论如何我都不建议使用该解决方案),并且没有预期的结果当我注意到尝试用axios
安装npm
软件包时,在Visual Studio Code中打开了包含整个项目的目录,从而指出了该问题的解决方案。因此,我将其关闭并再次尝试安装。
令人惊讶的是,安装过程像是一种魅力。
为了尝试复制相同的问题,我在WSL上使用Ubuntu 18.04 LTS(也许与Windows权限有关)
这可能也是该问题的解决方案: Error: EACCES: permission denied, access '/usr/local/lib/node_modules' react
答案 5 :(得分:0)
请关注npm网站-https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally
”如果尝试全局安装软件包时看到EACCES错误,则可以: 使用节点版本管理器重新安装npm(推荐), 要么 手动更改npm的默认目录“
我遵循推荐的方式-安装了nvm。它解决了我的问题
答案 6 :(得分:-3)
这对我有用。
sudo npm install -g coffee-script
然后
sudo npm install -g typescript