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

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

ただいまの
回答率

88.64%

【webpack】watch時にエラーが出て実行できない

受付中

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 1,850
退会済みユーザー

退会済みユーザー

 前提・実現したいこと

これまでgulpを使っていたのですが、webpackを使おうと思い、このサイトを参考に設定をしていました。
https://www.expexp.jp/webpack/

コンパイルしたらjsとcssは別に出力するのが前提です。
↑これを実現させるためにいろんなサイトを見たのですが、上記のサイト以外ではうまくいきませんでした。

今後、autoprefixerやcssのminifyも追加する予定です。

 発生している問題・エラーメッセージ

npm run buildでコンパイルは実行できるのですが、npm run watchでwatchしようとするとエラーが返ってきます。

buildはできるのにwatchだけ出来ない理由がわからず、、、ReferenceErrorでwebpackが無いと言われたり、、、完璧に詰まってしまいました。
ご教授のほどお願いいたします。

> myproject@ watch C:\Users\path\Documents\personal\private\test\webpack
> webpack --watch

C:\Users\path\Documents\personal\private\test\webpack\node_modules\webpack-cli\bin\cli.js:244
                                throw err;
                                ^

ReferenceError: webpack is not defined
    at Object.<anonymous> (C:\Users\path\Documents\personal\private\test\webpack\webpack.config.js:50:7)
    at Module._compile (C:\Users\path\Documents\personal\private\test\webpack\node_modules\v8-compile-cache\v8-compile-cache.js:178:30)
    at Object.Module._extensions..js (module.js:664:10)
    at Module.load (module.js:566:32)
    at tryModuleLoad (module.js:506:12)
    at Function.Module._load (module.js:498:3)
    at Module.require (module.js:597:17)
    at require (C:\Users\path\Documents\personal\private\test\webpack\node_modules\v8-compile-cache\v8-compile-cache.js:159:20)
    at WEBPACK_OPTIONS (C:\Users\path\Documents\personal\private\test\webpack\node_modules\webpack-cli\bin\convert-argv.js:133:13)
    at requireConfig (C:\Users\path\Documents\personal\private\test\webpack\node_modules\webpack-cli\bin\convert-argv.js:135:6)
    at C:\Users\path\Documents\personal\private\test\webpack\node_modules\webpack-cli\bin\convert-argv.js:142:17
    at Array.forEach (<anonymous>)
    at module.exports (C:\Users\path\Documents\personal\private\test\webpack\node_modules\webpack-cli\bin\convert-argv.js:140:15)
    at yargs.parse (C:\Users\path\Documents\personal\private\test\webpack\node_modules\webpack-cli\bin\cli.js:241:39)
    at Object.parse (C:\Users\path\Documents\personal\private\test\webpack\node_modules\webpack-cli\node_modules\yargs\yargs.js:567:18)
    at C:\Users\path\Documents\personal\private\test\webpack\node_modules\webpack-cli\bin\cli.js:219:8
    at Object.<anonymous> (C:\Users\path\Documents\personal\private\test\webpack\node_modules\webpack-cli\bin\cli.js:538:3)
    at Module._compile (module.js:653:30)
    at Object.Module._extensions..js (module.js:664:10)
    at Module.load (module.js:566:32)
    at tryModuleLoad (module.js:506:12)
    at Function.Module._load (module.js:498:3)
    at Module.require (module.js:597:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (C:\Users\path\Documents\personal\private\test\webpack\node_modules\webpack\bin\webpack.js:155:2)
    at Module._compile (module.js:653:30)
    at Object.Module._extensions..js (module.js:664:10)
    at Module.load (module.js:566:32)
    at tryModuleLoad (module.js:506:12)
    at Function.Module._load (module.js:498:3)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! myproject@ watch: `webpack --watch`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the myproject@ 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!     C:\Users\path\AppData\Roaming\npm-cache\_logs\2018-11-19T01_17_40_262Z-debug.log

 package.json

{
    "name": "myproject",
    "scripts": {
      "build": "webpack",
      "watch": "webpack --watch"
    },
    "devDependencies": {
      "@babel/core": "^7.0.0",
      "@babel/preset-env": "^7.0.0",
      "babel-loader": "^8.0.2",
      "css-loader": "^1.0.0",
      "node-sass": "^4.9.3",
      "sass-loader": "^7.1.0",
      "webpack": "^4.17.2",
      "webpack-cli": "^3.1.0"
    },
    "dependencies": {
      "jquery": "^3.3.1",
      "mini-css-extract-plugin": "^0.4.2"
    }
  }

 webpack.config.js

const path = require('path');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');

module.exports = {
    mode: 'development', //development or production
    entry: './src/js/main.js',
    output: {
        path: path.resolve(__dirname, 'dist'),
        filename: './assets/js/bundle.js'
    },
    module: {
        // babel-loaderの設定
        rules: [
        {
            test: /\.js$/,
            use: [
                {
                    loader: 'babel-loader',
                    options: {
                        presets: [
                            '@babel/preset-env'
                        ]
                    }
                }
            ],
            exclude: /node_modules/,
        },
        {
            test: /\.(sa|sc|c)ss$/,
            use: [
                    MiniCssExtractPlugin.loader,
                {
                    loader: 'css-loader',
                    options: {
                        url: false,
                        minimize: true,
                    }
                },
                {
                    loader: 'sass-loader'
                }
            ]
        }
    ]
    },
    plugins: [
        new MiniCssExtractPlugin({
            filename: './assets/css/style.css'
        }),
        new webpack.ProvidePlugin({
            $: 'jquery',
            jQuery: 'jquery'
        })
    ]
};
  • 気になる質問をクリップする

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 1

+1

webpack.config.js 内で webpackがrequireしていないため、
エラーが出ているようです。

最初の方に webpackの読み込みを追加すると直るかと思いますmm

const webpack = require('webpack');

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

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

  • ただいまの回答率 88.64%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

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