47

現在、node.jsバージョン0.8.8とnpm1.1.59がインストールされています。

私が走るときはいつでも:

$ npm install -g express

私はこれをお返しに受け取ります:

npm ERR! Error: EACCES, open '/Users/devinandrews/.npm/64a534c1-express.lock'
npm ERR!  { [Error: EACCES, open '/Users/devinandrews/.npm/64a534c1-express.lock']
npm ERR!   errno: 3,
npm ERR!   code: 'EACCES',
npm ERR!   path: '/Users/devinandrews/.npm/64a534c1-express.lock' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! System Darwin 12.1.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "express"
npm ERR! cwd /Users/devinandrews
npm ERR! node -v v0.8.8
npm ERR! npm -v 1.1.59
npm ERR! path /Users/devinandrews/.npm/64a534c1-express.lock
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, open '/Users/devinandrews/.npm/64a534c1-express.lock'
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/devinandrews/npm-debug.log
npm ERR! not ok code 0

私は今これを理解しようとして髪を抜いています。

アップデート:

走った

$ npm -g ls

npmがグローバルにインストールしたものを確認するには:

/usr/local/lib
├─┬ express@3.0.0rc4
│ ├── commander@0.6.1
│ ├─┬ connect@2.4.4
│ │ ├── bytes@0.1.0
│ │ ├── formidable@1.0.11
│ │ ├── pause@0.0.1
│ │ └── qs@0.4.2
│ ├── cookie@0.0.4
│ ├── crc@0.2.0
│ ├── debug@0.7.0
│ ├── fresh@0.1.0
│ ├── methods@0.0.1
│ ├── mkdirp@0.3.3
│ ├── range-parser@0.0.4
│ └─┬ send@0.0.4
│   └── mime@1.2.6
└─┬ npm@1.1.59
  ├── abbrev@1.0.3
  ├── ansi@0.1.2
  ├── archy@0.0.2
  ├── block-stream@0.0.6
  ├── chownr@0.0.1
  ├── couch-login@0.1.10
  ├── fstream@0.1.18
  ├─┬ fstream-npm@0.1.1
  │ └── fstream-ignore@0.0.5
  ├── glob@3.1.12
  ├── graceful-fs@1.1.10
  ├── inherits@1.0.0
  ├── ini@1.0.4
  ├─┬ init-package-json@0.0.5
  │ └── promzard@0.2.0
  ├── lockfile@0.2.1
  ├── lru-cache@2.0.1
  ├── minimatch@0.2.6
  ├── mkdirp@0.3.4
  ├── node-gyp@0.6.7
  ├── nopt@2.0.0
  ├── npm-registry-client@0.2.6
  ├─┬ npmconf@0.0.11
  │ └─┬ config-chain@1.1.1
  │   └── proto-list@1.2.2
  ├── npmlog@0.0.2
  ├── once@1.1.1
  ├── osenv@0.0.3
  ├─┬ read@1.0.4
  │ └── mute-stream@0.0.3
  ├── read-installed@0.0.2
  ├── read-package-json@0.1.4
  ├── request@2.9.203
  ├── retry@0.6.0
  ├── rimraf@2.0.2
  ├── semver@1.0.14
  ├── slide@1.1.3
  ├── tar@0.1.13
  ├── uid-number@0.0.3
  └── which@1.0.5

しかし、私が実行した場合:

$ npm ls

空を返しますか?

4

9 に答える 9

145

私は同じ問題を抱えていましたが、npm cache clear修正しませんでした。この問題は.npm、ホームディレクトリ内のディレクトリがroot権限で作成されたために発生します。ほとんどの場合、最初に実行したnpmコマンドはローカルディレクトリでsudo npm -g実行しようとしていました。npm install

解決するには:

  • sudo chown -R yourusername ~/.npm
  • これは必要ないかもしれませんが、私もしなければなりませんでしたrmdir ~/tmp

npm installpackage.jsonからはこの後動作するはずです。

于 2012-12-08T01:31:34.480 に答える
6

実行npm cache clean して、もう一度インストールしてみてください

于 2012-09-02T15:14:34.257 に答える
6

同じ問題が発生しました。この問題は、ホームディレクトリの.npmディレクトリがroot権限で作成されたために発生します。

使用する :

$sudo npm install -g express
于 2012-12-17T19:14:36.713 に答える
0

解決策は次のとおりです。

1-ユーザーに.npmフォルダーをchownします。

sudo chown -R Webmaste /Users/webmaste/.npm/

2-テストフォルダまたはフォルダ:

sudo npm install -g express@2.5.8

3-実際の場所からエクスプレスを呼び出します。

/usr/local/share/npm/bin/express

4-

sudo cd . && npm install

5-最後に:

node app

コンソールの最終メッセージは次のようになります。

Express server listening on port 3000 in development mode
于 2013-01-28T16:25:31.050 に答える
0

sudoを使用しても何も問題がない場合npm install -g package_name。また、パスワードの入力に問題があり、sudoersファイルまたはnpm実行可能ファイルが属する同じグループにいつでも自分を追加できます。

したがって、npm editのsudoersに自分自身を追加する/etc/sudoersには、ファイルの最後に次のようなものを追加します。

your_username  localhost=/usr/local/bin/npm

詳細が必要な場合にそれを実現する方法についてのステップバイステップガイドがあります

于 2013-11-21T01:14:46.677 に答える
0

私の場合、rootが所有する〜/ .npmディレクトリではなく、〜/ tmpでした。これは、エラーメッセージの1つが最終的に見つけられるまでチェックすることを考えていませんでした。修正の手順は非常に簡単です。これはtmpディレクトリなので、吹き飛ばして、自分が所有するディレクトリからやり直すことができます。

sudo rmdir ~/tmp
mkdir ~/tmp
于 2014-04-10T02:13:35.570 に答える
0

管理者としてPowerShellを実行し、次のように入力します。

Set-ExecutionPolicy RemoteSigned

その後、インストールを再試行してください。

于 2019-09-30T18:58:12.120 に答える
0

ちなみに、他の解決策が役に立たなかった場合、私は同じ問題を抱えており、何が間違っているのかを理解しました。これはおそらくここで興味深いことです。

ローカルエクスプレスをインストールしたときに、別のプロジェクトでnodemonを実行していました。別のプロジェクトでExpressを実行しておらず、新しいプロジェクトにExpressをインストールしようとしていることを確認してください。ただ頭を上げて、それが役立つことを願っています。ちなみに、パッケージファイルから依存関係をコピーして、新しいプロジェクトに貼り付け、npm installを実行して確認したところ、expressがインストールされました。

于 2020-07-22T10:47:20.193 に答える
0

C:\ Users \ User_Name \ AppData \ Roaming \ npm-cache_logsに移動し、すべてのファイルを削除します

その後、再度実行します。

npm install

または、Nodejsを再インストールして、Chocolateyにチェックマークを付けます

古いバージョンのNodejsをインストールして、構築しているコンポーネントのバージョンと互換性を持たせることができますhttps://nodejs.org/en/download/releases/

于 2021-04-05T16:24:40.600 に答える