1. ホーム
  2. javascript

[解決済み] Nodeモジュール名での@シンボルの使用 [重複].

2022-05-08 05:46:32

質問

同僚が書いたコードを見ていると、彼女が使っているのは @ 記号を require 文の中で使用します。これはそのうちの1つのファイルの1行目です。

var restServer = require('@company/config')

このコードを実行しようとすると、エラーが発生します。

Error: Cannot find module '@company/config'

私のディレクトリには、requireが認識できるようなこれと似たようなものはないのです!率直に言って、私はそれを期待しています。何か魔法がかかっているようで、嫌ですね。

私が推測できるのは、これは私が知らないnpmやNodeのトリックなのか、それとも私が理解していない他のコンフィギュレーションのダークアートがあるのか、ということだけです。どんな情報でもありがたいです。 @ はrequireで動作します。

その他のアイデア Chefはこの全体のどこかに関与しているので、関連性があるかもしれません。

更新情報 : 99% 確実に、この問題は npm config が動作していますが、修正方法についてはまだ不明です。

アップデート2 をベースに、いくつか発見したことがあります。

Dereks-MacBook-Pro:project-dir derekjanni$ npm config set //registry.npmjs.org/:authtoken $SECRET_TOKEN

Dereks-MacBook-Pro:project-dir derekjanni$ npm install
npm ERR! Darwin 15.0.0
npm ERR! argv "/usr/local/Cellar/node/5.5.0/bin/node" "/usr/local/bin/npm" "install"
npm ERR! node v5.5.0
npm ERR! npm  v3.5.3
npm ERR! code E404
npm ERR! 404 Not found : @company/config
npm ERR! 404  '@company/config' is not in the npm registry.

解決方法は?

というわけで、これは自分で解決しました。

判明したのは @company/config は私たちのプライベートな NPM リポジトリの一つで、npm 上でホストされ、内部の GitHub リポジトリへのこのエイリアスで定義されています。 require は動作します。

使用方法 @ は、私が知らなかったプライベートNPMレポのプロトコルかもしれませんし、そうでないかもしれません。