mar-gitacount
@mar-gitacount (mar mar)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

npm run devエラーについて

npm installはうまくいきましたが、npm run devだけうまくいきません。
$ npm cache cleanなども試しましたがダメでした、、

なにか方法などがあればご教授ください。

スクリーンショット 2020-12-19 013726.png

0 info it worked if it ends with ok
1 verbose cli [
1 verbose cli 'C:\Program Files\nodejs\node.exe',
1 verbose cli 'C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js',
1 verbose cli 'run',
1 verbose cli 'dev'
1 verbose cli ]
2 info using npm@6.14.9
3 info using node@v14.15.3
4 verbose run-script [ 'predev', 'dev', 'postdev' ]
5 info lifecycle @~predev: @
6 info lifecycle @~dev: @
7 verbose lifecycle @~dev: unsafe-perm in lifecycle true
8 verbose lifecycle @~dev: PATH: C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin;C:\workspace\neomediaproject\node_modules.bin;C:\Python39\Scripts\;C:\Python39\;C:\Program Files\MySQL\MySQL Server 8.0\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\Git\cmd;C:\ProgramData\chocolatey\bin;C:\HashiCorp\Vagrant\bin;C:\Program Files\nodejs\;C:\Users\m_i\AppData\Local\Microsoft\WindowsApps;C:\Users\m_i\AppData\Local\Programs\Microsoft VS Code\bin;C:\Program Files\Oracle\VirtualBox;C:\Users\m_i\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\starttest.bat;c:\php;C:\Users\m_i\AppData\Local\ComposerSetup\bin;C:\Users\m_i\AppData\Roaming\Composer\vendor\bin;C:\bootstrap-4.1.3-dist;C:\php\sqlite-tools-win32-x86-3340000;C:\Users\m_i\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup;C:\Users\m_i\AppData\Roaming\npm
9 verbose lifecycle @~dev: CWD: C:\workspace\neomediaproject
10 silly lifecycle @~dev: Args: [ '/d /s /c', 'npm run development' ]
11 silly lifecycle @~dev: Returned: code: 1 signal: null
12 info lifecycle @~dev: Failed to exec dev script
13 verbose stack Error: @ dev: npm run development
13 verbose stack Exit status 1
13 verbose stack at EventEmitter. (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\index.js:332:16)
13 verbose stack at EventEmitter.emit (events.js:315:20)
13 verbose stack at ChildProcess. (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\lib\spawn.js:55:14)
13 verbose stack at ChildProcess.emit (events.js:315:20)
13 verbose stack at maybeClose (internal/child_process.js:1048:16)
13 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:288:5)
14 verbose pkgid @
15 verbose cwd C:\workspace\neomediaproject
16 verbose Windows_NT 10.0.20279
17 verbose argv "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" "run" "dev"
18 verbose node v14.15.3
19 verbose npm v6.14.9
20 error code ELIFECYCLE
21 error errno 1
22 error @ dev: npm run development
22 error Exit status 1
23 error Failed at the @ dev script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 1, true ]

0

2Answer

cross-env コマンドが見つからないエラーです。用意された package.json を使っているようなので普通は npm install でインストールされる設定になっているはずですが、入っていないのかもしれません。

npm install --save-dev cross-env でパッケージを追加し、 package.json と package-lock.json が変更されるのでコミットして、もう一度 npm run dev を試してみてください。

0Like

Comments

  1. @mar-gitacount

    Questioner

    毎度お世話になります。
    ご指摘の通りnpm install --save-dev cross-env を実行しcross-envを実行した後に
    nppm run devを実行したのですが、
    webpack関係のエラーが吐かれてしまい、滞ってしまいました。
    以下のエラー文を読む限り、`loaders`というものがnotfindだよと書かれていたので
    npm install --save-dev css-loader ts-loaderした後に再度npm run devとしてもまた同じエラー文です、、
  2. Webpack の設定ファイルに loaders 項目が書かれているせいでエラーが出ています。この項目は古いバージョンの Webpack で使えましたが Webpack 4 で非対応になりました。

    Webpack の設定ファイルは laravel-mix パッケージが提供しているものを使っているようです。 laravel-mix が古いせいで設定ファイルの形式が古いと思われます。 npm install --save-dev laravel-mix@latest を実行してアップデートしてください。
  3. @mar-gitacount

    Questioner

    ありがとうございます。おっしゃった通り  npm install --save-dev laravel-mix@latest の後にnpm run dev を実行したら、うまくいきました。
    ネットの記事でpackage.json ファイルを書き換えるなども散見されましたがどれもうまくいかなかったので助かりました。
  4. @mar-gitacount

    Questioner

    一応思ったwebページを表示することができたのですが、
    コンソールにて
    Uncaught Error: Module parse failed: Unexpected token (1:0)
    You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
    > <template>
    | <div class="container">
    | <div class="row justify-content-center">
    というエラーが吐かれました。
    ネットで検索するとweb.config.jsを書き換えるとエラーが出なくなるとかいてあったのでプロジェクトのルートにweb.config.jsを作り以下構文を書いたのですが、


    const HtmlWebpackPlugin = require('html-webpack-plugin'); //installed via npm
    const webpack = require('webpack'); //to access built-in plugins

    module.exports = {
    module: {
    rules: [
    { test: /\.txt$/, use: 'raw-loader' }
    ]
    },
    plugins: [
    new HtmlWebpackPlugin({template: './src/index.html'})
    ]
    };
    効果がありませんたびたび申し訳ございません。がなにか方法はありますでしょうか??
  5. どのページを参考にされたか分かりませんが、 Webpack の設定ファイルは webpack.config.js です。参考にされたページは書いていただけると助かります。ページの説明が間違っている場合もあるので。

    さらに、 laravel-mix を使っている場合は webpack.config.js ではなく、 webpack.mix.js で設定する必要があります。 https://laravel-mix.com/docs/6.0/installation

    さらに、このエラーは Webpack の設定で直るかどうかも分かりません。アプリケーションの JavaScript の記述が間違っている可能性もあるからです。エラーに発生場所のファイル名も出ていませんか? それがあれば何か分かるかもしれません。
  6. @mar-gitacount

    Questioner


    因みに参考にしたサイトは、、
    https://webpack.js.org/concepts/#loaders

    プロジェクトのルートにwebpack.mix.js確認できました。
    webpack.mix.jsではなくwebpack.mix.jsの件は了解しました。ありがとうございます。
    因みにエラー文の全容は以下に貼り付けます。

  7. なるほど、公式ページなので書いてあることはまず正しいと思います。

    出ているエラーですが、 Vue の単一ファイルコンポーネントを読み込もうとしているようです。 https://jp.vuejs.org/v2/guide/single-file-components.html

    アプリケーションの中に拡張子が .vue のファイルはありませんか? それを処理するためには webpack.mix.js に別途設定を書く必要があります。アプリケーションの構成や Vue, Webpack, laravel-mix のバージョンによって設定が異なるので、ここですぐ説明することはできません。
  8. @mar-gitacount

    Questioner

    .vueファイルとはApp.vueのことだと思ったのですが、あっていますか??
  9. @mar-gitacount

    Questioner

    なにかと付き合わせて申し訳ございません。
    参考になるかわかりませんが、各自バージョン載せておきます。必要な情報があればのせていきたいので言ってくれれば助かります。

    -- vue@2.6.12

    webpack-cli 4.2.0

    webpack 5.11.0

    Laravel Framework 8.18.1
  10. App.vue で合っています。

    laravel-mix のバージョンはここで回答した手順でアップデートされたのでほぼ最新のはずですね。最新の laravel-mix だと何も設定しなくても Vue に対応しているようです。 https://laravel.com/docs/8.x/mix#vue

    ただ、最初に質問された時点で laravel-mix のバージョンが古かったので、 webpack.mix.js の記述も古いままかもしれません。 webpack.mix.js の中に以下のように書いてあげればうまく動くのではないかと思います。

    mix.js('resources/js/app.vue', 'public/js');

    これを設定しても、 webpack.mix.js の他の古い記述を消す必要があるかもしれないなど、他につまずく可能性がかなりあります。もし動かなければこの質問をクローズ済みにした上で新しい質問を投稿してください。
  11. @mar-gitacount

    Questioner

    app.vueは無く
    webpack.mix.jsファイル内には
    mix.js('resources/js/app.js', 'public/js')
    .sass('resources/sass/app.scss', 'public/css');
    という記載がありました。
    そうですね、長くなってしまうので、整理して新しく投稿したいと思います。
    恥ずかしながらフォルダを消していれなおしたところ、またnpm run dev でエラーが出てしまったので、、
  12. あ、中身が Vue の書き方であっても拡張子が .js なことはありますね。すみません。 app.js の中に <template> で始まる HTML 的な記述があれば Vue の書き方です。

    次の質問には、 laravel-mix で Vue の単一ファイルコンポーネントを処理できないといったことを書いていただけると答えやすいと思います。あとはバージョン情報、 package.json の中身、 webpack.mix.js の中身、ここでも貼っていただいたエラーのスクリーンショットがあれば。
  13. @mar-gitacount

    Questioner

    クローズした後にqiitaに何度投稿しても404notfundになります、、
    なぜでしょうか

Your answer might help someone💌