webpack4+jQuery+sass環境を作りたいのですが、
jQueryを読み込む設定がうまくいかず、下記のようなエラーが出てしまいます。
ERROR in ../js/index.js Module not found: Error: Can't resolve 'jquery' in '/private/var/www/test/resource/js' @ ../js/index.js 1:0-17 ERROR in ../js/calender.js Module not found: Error: Can't resolve 'jquery' in '/private/var/www/test/resource/js' @ ../js/calender.js 1:0-17 @ ../js/index.js ERROR in ../js/utility.js Module not found: Error: Can't resolve 'jquery' in '/private/var/www/test/resource/js' @ ../js/utility.js 1:0-17 @ ../js/index.js ERROR in ../js/validate.js Module not found: Error: Can't resolve 'jquery' in '/private/var/www/test/resource/js' @ ../js/validate.js 1:0-17 @ ../js/index.js
npm install jquery
上記のコマンドを実行し、node_modulesの中にjqueryパッケージは存在している状態です。
●ディレクトリ構成
. ├── common │ └── static │ └── webpack │ └── bundle.js └── resource └── env ├── node_modules └── package-lock.json └── package.json └── webpack.config.js └── js └── index.js └── utility.js └── calender.js └── validate.js └── scss └── style.scss └── utility └── utility.scss
●index.js
js
1import '../scss/style.scss'; 2import * as util from './utility.js' 3import * as calender from './calender.js' 4import * as validate from './validate.js' 5/////////////////////////////////////////////////////////////////////// 6$(".js_backdrop_trigger").on("click", util.backdropOpen); 7$(".js_backdrop_area").on("click", util.backdropAreaClose); 8$(".js_backdrop_close").on("click", util.backdropButtonClose); 9 10$(".js_dialog_trigger").on("click", util.dialogOpen); 11$(".js_dialog_close").on("click", util.dialogAreaClose); 12$(".js_dialog_close").on("click", util.dialogButtonClose); 13 14if($(".js_calender").length!=0){ 15 $(window).on('load', calender.initialSelect); 16 $(window).on('load', calender.changeSendDate); 17} 18$(".js_calender_prev").on("click", calender.prev); 19$(".js_calender_next").on("click", calender.next); 20 21$(".js_select_role").on("change", validate.contractCheck); 22
●package.json
json
1{ 2 "scripts": { 3 "w": "webpack --watch" 4 }, 5 "dependencies": { 6 "css-loader": "^3.4.2", 7 "jquery": "^3.5.1", 8 "node-sass": "^4.13.1", 9 "sass-loader": "^8.0.2", 10 "style-loader": "^1.1.3", 11 "webpack": "^4.41.5", 12 "webpack-cli": "^3.3.10" 13 } 14} 15
●webpack.config.js
// プラグインを利用するためにwebpackを読み込んでおく const webpack = require('webpack'); const path = require('path'); module.exports = { // メインとなるJavaScriptファイル(エントリーポイント) entry: "../js/index.js", mode: "production", // ファイルの出力設定 output: { // 出力ファイルのディレクトリ名 path: path.resolve(__dirname, '../../common/static/webpack'), // 出力ファイル名 filename: "bundle.js" // hash値自動付与 変更時はwebpack再起動 // filename: "bundle_[hash].js" }, module: { rules: [ { test: /.scss/, //ローダーの処理対象となるディレクトリ include: path.resolve(__dirname, '../scss'), use: [ // linkタグに出力する機能 "style-loader", "css-loader", "sass-loader", ] } ] }, plugins: [ new webpack.ProvidePlugin({ $: "jquery", }), ], };
webpack.config.js内のplugins:をまるごと削除して、index.jsの1行目にimport $ from 'jquery';を記載しても以下のようなエラーが出てしまいます。
ERROR in ../js/index.js Module not found: Error: Can't resolve 'jquery' in '/private/var/www/test/resource/js' @ ../js/index.js 1:0-23 8:0-1 9:0-1 10:0-1 12:0-1 13:0-1 14:0-1 16:3-4 17:4-5 18:4-5 20:0-1 21:0-1 23:0-1
公式ドキュメントを読んでも、色々な記事を読んでみても自分と同じ状態らしきものがなく、お手上げ状態です…
長いですがアドバイスいただけると幸いです。よろしくおねがいします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。