LoginSignup
0
0

More than 5 years have passed since last update.

RAML: api-designer実行時にrequestが見つからずにエラーになる件について

Last updated at Posted at 2018-07-25

はじめに

※この記事はnpmからインストールするapi-designerのバージョンが0.4.1の場合の話です。お読みいただいている時点でそれより新しいバージョンをnpm経由で使用している場合はこの記事の内容は参考にならないと思います。

APIのドキュメント作成にRAMLを使っていて、記述にはRAML用エディタのapi-designerが便利です。

エラー

しかし、2018年7月現在、READMEのRunning Locally通りnpmからインストールしても実行時に以下のようなエラーになります。

Error: Cannot find module 'request'
at Function.Module._resolveFilename (module.js:538:15)
at Function.Module._load (module.js:468:25)
at Module.require (module.js:587:17)
at require (internal/module.js:11:18)
at Object. (/Users/jvarg25/.nvm/versions/node/v8.9.4/lib/node_modules/api-designer/bin/api-designer.js:6:15)
at Module._compile (module.js:643:30)
at Object.Module._extensions..js (module.js:654:10)
at Module.load (module.js:556:32)
at tryModuleLoad (module.js:499:12)
at Function.Module._load (module.js:491:3)

原因

requestっていうHTTP通信するパッケージに依存しているのですが、このrequestが0.4.1ではdevDependenciesにいます。https://github.com/mulesoft/api-designer/blob/support/v0.4.1/package.json#L58
devDependenciesにいるパッケージはnpm install時に依存パッケージとしてインストールされません。そのためrequestはインストールされず、上記のエラーが発生します。
実行に必要なパッケージは本来はdependenciesにいるべきです。

対応策

しかしmasterではdependenciesの中にいます。https://github.com/mulesoft/api-designer/blob/master/package.json#L22
なので、masterにあるコードをインストールすることで上記のエラーは回避できます。

npm install -g mulesoft/api-designer#master

エラーなくインストールされると思います。あとは普通にapi-designerを実行すればlocalhost:3000で立ち上がります。

npxで実行する場合はこちら

npx github: mulesoft/api-designer

対応策(非推奨)

個人的には良くないと思っていますが、requestをグローバルにインストールすればエラーは発生しなくなります。

npm install -g api-designer request

最後に

masterにあるコードをnpmにpublishすれば解決するが対応されない。issueはあります。https://github.com/mulesoft/api-designer/issues/509

不備や質問があればコメント欄かTwitter(@shisama_)までお願いいたします。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0