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

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

ただいまの
回答率

90.42%

  • Laravel 5

    2184questions

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

  • Vue.js

    917questions

    Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

  • npm

    323questions

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

npm run watch時に「sh: 1: cross-env: not found」のエラー発生

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 3,911

kazoogon

score 244

只今Laravel5.5, homesteadを使用しローカルにてvue.jsを利用してSPAを作成しております。
その中でJavaScriptやCSSを追加・変更した際に自動的にコンパイルが行われるようにするために「npm run watch」を実行すると以下のようなエラーが出てきました。

> @ watch /home/vagrant/code/school
> cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js

sh: 1: cross-env: not found
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn
npm ERR! @ 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`
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the @ watch script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/vagrant/.npm/_logs/2018-04-04T03_05_00_224Z-debug.log


http://blog.asial.co.jp/1496 ←こちらのサイトを参考にし、cross-env.jsを以下のように修正

"scripts": {
    "dev": "node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "watch": "node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "watch-poll": "node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --watch-poll --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "hot": "node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
    "production": "node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
  },


しかし結果は同じ。またhttps://github.com/fullstackreact/react-gen-generator/issues/4 このサイトも参考にしてみましたが、効果は有りませんでした。npmの知識がまだ疎しくここで止まってしまっています。回答よろしくお願いいたします。

<<回答を受けて>>
npm install --save-dev cross-envを実行しました所こうエラーが出ました。

vagrant@homestead:~/code/school$ npm install --save-dev cross-env
npm WARN ajv-keywords@3.1.0 requires a peer of ajv@^6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: assert-plus@1.0.0 (node_modules/fsevents/node_modules/dashdash/node_modules/assert-plus):
npm WARN enoent SKIPPING OPTIONAL DEPENDENCY: ENOENT: no such file or directory, open '/home/vagrant/code/school/node_modules/fsevents/node_modules/dashdash/node_modules/assert-plus/package.json.4201104718'
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: assert-plus@1.0.0 (node_modules/fsevents/node_modules/getpass/node_modules/assert-plus):
npm WARN enoent SKIPPING OPTIONAL DEPENDENCY: ENOENT: no such file or directory, open '/home/vagrant/code/school/node_modules/fsevents/node_modules/getpass/node_modules/assert-plus/package.json.670411067'
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.1.3 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: minimist@1.2.0 (node_modules/fsevents/node_modules/rc/node_modules/minimist):
npm WARN enoent SKIPPING OPTIONAL DEPENDENCY: ENOENT: no such file or directory, open '/home/vagrant/code/school/node_modules/fsevents/node_modules/rc/node_modules/minimist/package.json.2754480345'
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: assert-plus@1.0.0 (node_modules/fsevents/node_modules/sshpk/node_modules/assert-plus):
npm WARN enoent SKIPPING OPTIONAL DEPENDENCY: ENOENT: no such file or directory, open '/home/vagrant/code/school/node_modules/fsevents/node_modules/sshpk/node_modules/assert-plus/package.json.36804433'

npm ERR! path ../cross-env/dist/bin/cross-env.js
npm ERR! code EPROTO
npm ERR! errno -71
npm ERR! syscall symlink
npm ERR! EPROTO: protocol error, symlink '../cross-env/dist/bin/cross-env.js' -> '/home/vagrant/code/school/node_modules/.bin/cross-env'

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/vagrant/.npm/_logs/2018-04-04T06_01_57_849Z-debug.log


またfind -name "cross-env.js" -type fで検索しても何もでてきませんでした。

<<回答を受けて②>>
単純にcross-envをinstallしてみました。
が、しかし今だにnpm run dev, npm run watch実行後はsh: 1: cross-env: not foundのままですね。。

vagrant@homestead:~/code/school$ npm install cross-env --save --no-bin-links
npm WARN ajv-keywords@3.1.0 requires a peer of ajv@^6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: assert-plus@1.0.0 (node_modules/fsevents/node_modules/dashdash/node_modules/assert-plus):
npm WARN enoent SKIPPING OPTIONAL DEPENDENCY: ENOENT: no such file or directory, open '/home/vagrant/code/school/node_modules/fsevents/node_modules/dashdash/node_modules/assert-plus/package.json.1110259093'
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: assert-plus@1.0.0 (node_modules/fsevents/node_modules/getpass/node_modules/assert-plus):
npm WARN enoent SKIPPING OPTIONAL DEPENDENCY: ENOENT: no such file or directory, open '/home/vagrant/code/school/node_modules/fsevents/node_modules/getpass/node_modules/assert-plus/package.json.1816258176'
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.1.3 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: assert-plus@1.0.0 (node_modules/fsevents/node_modules/sshpk/node_modules/assert-plus):
npm WARN enoent SKIPPING OPTIONAL DEPENDENCY: ENOENT: no such file or directory, open '/home/vagrant/code/school/node_modules/fsevents/node_modules/sshpk/node_modules/assert-plus/package.json.4166844666'
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: minimist@1.2.0 (node_modules/fsevents/node_modules/rc/node_modules/minimist):
npm WARN enoent SKIPPING OPTIONAL DEPENDENCY: ENOENT: no such file or directory, open '/home/vagrant/code/school/node_modules/fsevents/node_modules/rc/node_modules/minimist/package.json.3366993945'

+ cross-env@5.1.4
added 1 package in 41.555s
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

cross-envのパス修正以前に、cross-env自体はインストール済みなのでしょうか?

未インストールであれば、npm install --save-dev cross-envでインストールしてから、再度、試してみてください。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/04/04 15:13

    回答ありがとうございます。
    質問部分に「回答を受けて」の部分を追加いたしました。(ここではコードが読みずらいので)
    よろしくお願いいたします。

    キャンセル

  • 2018/04/04 15:46

    npm ERR! EPROTO: protocol error, symlink
    とりあえずエラー文でググって調査してみてください。その調査結果を追記してください。

    参考までに一応、こんなのはすぐ見つかりました。https://qiita.com/sansaisoba/items/0fd5c77c9fbbfe61a629

    キャンセル

  • 2018/04/04 22:29

    ありがとうございます。
    ↑の通りにnpm installするとinstallは完了。 
    e_modules/cross-env/dist/bin/cross-env.js を質問でもしたように修正
     →npm run watch実行後のエラー文に変化はなし

    エラー文にて「sh: 1: cross-env: not found」と出ていますが、cross-envというディレクトリは存在し、なぜこのエラーがでるのか?? という所まではきました。

    キャンセル

  • 2018/04/05 09:53

    cross-envをinstallしてみましたが、結果は一緒でした。
    (質問文に追記も致しました)

    キャンセル

  • 2018/04/05 09:54 編集

    それで、エラーの調査結果はどうでしたか?自分でそこから調べたこと、試したことを質問文に追記してください。

    キャンセル

  • 2018/04/05 09:58

    また、「cross-envというディレクトリは存在し」では、プロジェクトフォルダの階層構造を把握していない第3者には、どこにそのディレクトリが存在しているのか伝わらないので、可能な限り第三者にも伝わるように具体的な情報を提供するように心がけてください。

    キャンセル

  • 2018/04/05 10:12

    https://stackoverflow.com/questions/43685777/laravel-mix-sh-1-cross-env-not-found-error
    こちらのサイトを参考にし、解決いたしました。
    原因はpackage.jsonのscriptsの部分「cross-env」記載部分でした。そこを「node_modules/cross-env/dist/bin/cross-env.js」に変更し、cross-env.jsが読み込まれるように修正いたしました。

    npmの知識はほぼ0でしたので、npmの仕組みについて今回勉強になりました。お忙しいところご回答ありがとうございました。

    キャンセル

  • 2018/04/05 10:35

    自己解決出来たようで良かったです!

    キャンセル

同じタグがついた質問を見る

  • Laravel 5

    2184questions

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

  • Vue.js

    917questions

    Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

  • npm

    323questions

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