質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
npm

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

BitBucket

BitBucketは無料のリポジトリ管理ホスティングサービスです。 MercurialとGitのVCSに対応しています。プライベートリポジトリを、制限なく作成することが可能です。

Q&A

解決済

1回答

4296閲覧

heroku上でnpm installができません

supermaruetsu

総合スコア148

npm

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

BitBucket

BitBucketは無料のリポジトリ管理ホスティングサービスです。 MercurialとGitのVCSに対応しています。プライベートリポジトリを、制限なく作成することが可能です。

0グッド

1クリップ

投稿2017/05/11 07:41

編集2017/05/11 13:57

bitbucket-pipelineを用いてbitbucket経由でherokuへの展開を行っております。
herokuへのデプロイ前に以下の2つを実行したいと考えております。

  1. composer install
  2. npm install
  3. Laravel-Mix(gulp等の実行)

vendorやnode_modules配下はgitignoreしているため上記は必要となってきます。
現在2と3が出来ずに困っております。
package.jsonやbitbucket-pipelines.ymlの書き方に問題があるかと思いますが、改善方法が分からずご教示頂けないでしょうか。

※herokuのbuildpackはnodejs入れております。
※heroku run bashで直接herokuに入り、npm installはできました。

// package.json { "private": true, "scripts": { "dev": "npm run development", "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", "watch-poll": "npm run watch -- --watch-poll", "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", "prod": "npm run production", "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" }, "devDependencies": { "axios": "^0.15.3", "bootstrap-sass": "^3.3.7", "cross-env": "^3.2.3", "jquery": "^3.1.1", "laravel-mix": "0.*", "lodash": "^4.17.4", "vue": "^2.1.10" } }
// bitbucket-pipelines.yml image: phpunit/phpunit:5.0.3 clone: depth: full pipelines: default: - step: script: # Modify the commands below to build your repository. - composer install - npm install - npm run production - git push https://heroku: test-stg.git HEAD

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

nodejsとphpのbuildpackがこの順に入っていれば、1と2の実行もherokuがやってくれるはずなのですが。。
3についても、package.jsonに

"scripts": { "postinstall": "npm run production" }

などと書いておくとnpm installのときに自動で実行され、heroku内で完結することができます。(参考
ここまで一度設定してみて手元からgit pushしてみてください。
デプロイ後のherokuに入ってvendor/やnode_modules/が存在するようでしたら、正常に動いています。

上記がうまくいくなら、bitbucket pipelineではgit pushだけ行えばよいです。

どうしてもビルド作業もpipeline内で行う必要がある場合は追記しますのでコメントでお知らせください。

投稿2017/05/13 04:02

lefb766

総合スコア66

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

supermaruetsu

2017/05/13 04:50

ビルドをheroku内でやろうと試みましたが、確かにローカルでビルドしたものをアップするほうが気楽にできていいかもしれません。ありがとうございました!!もしお手すきであればHeroku内でのビルドもアドバイス頂ければ幸いです^^
lefb766

2017/05/13 06:55

えっと、僕の回答は一度Heroku内でのビルドを試してくださいという意図でした。 package.jsonに追記してcommit、pushで質問者さんのおっしゃる1~3の作業がすべてherokuで行われると考えているのですが、うまくいきませんか?
supermaruetsu

2017/05/13 08:36

はい、うまく行かないんです。。。
supermaruetsu

2017/05/13 08:37

npmコマンド自体が使えないようなので、procfileとかに書かないと行けないとかですかね?
lefb766

2017/05/13 11:21

書き洩らしていましたが、質問者さんのbitbucket-pipeline.ymlそのままでbitbucketにpushとpipeline上でまさにnpmコマンドがないことによるエラーが出ます。 手元から「直接herokuに」pushしてみてくださいと言いたかったのです。 伝わりにくくてごめんなさい。 手元から直接でうまくいけば、pipeline経由でデプロイするときはymlファイルのscriptのところをgit pushの行以外消せばいけると思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問