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

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

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

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

1971閲覧

JSmoduleにおけるimport文パス指定方法

revoiot

総合スコア188

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2021/08/23 06:18

編集2021/08/23 06:33

前提・実現したいこと 試したこと

現在laravelで掲示板アプリを作成しているlaravel初心者です。
あるURLを参考に、vanillaJSの絵文字機能を導入しようと考えていますが、
Devコンソールを確認したところ、net::ERR_ABORTED 404 (Not Found)というエラーが出てしまうようです。

ググって調べてみたところ、import文のパス指定の方法が間違っているという記事を見つけたのですが、具体的に下記のFrom以降でどのようにパス指定をするべきなのかがわからないため、教えていただきたいです

devコンソールを確認する限り、localhostに後にくるべきパスを指定してあげる必要がありそうです。
http://127.0.0.1:8081/node_modules/@joeattardi/emoji-button

JS

1import { EmojiButton } from '../node_modules/@joeattardi/emoji-button';

※ちなみに現在自分はdocker経由でローカルサーバーを立ち上げて操作しています。

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

Devコンソール画面
イメージ説明

ディレクトリ構造
イメージ説明

layout.blade.php

<script type="module" src="js/emoji.js"></script>

emoji.js

JS

1import { EmojiButton } from '../node_modules/@joeattardi/emoji-button'; 2 3const picker = new EmojiButton(); 4const trigger = document.querySelector('#emoji-trigger'); 5 6picker.on('emoji', selection => { 7 // handle the selected emoji here 8 console.log(selection.emoji); 9}); 10 11trigger.addEventListener('click', () => picker.togglePicker(trigger));

補足情報(FW/ツールのバージョンなど)

Laravel Framework 7.30.2

MySQL 8.0.21 Homebrew

PHP 7.4.14

Docker 19.03.13

Heroku 7.47.2

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

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

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

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

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

guest

回答1

0

ベストアンサー

いまのところ、<script type="module">内からNode.jsのモジュールを呼び出すような運用はほぼできません。

「どうしても<script type="module">で書きたい」という強い意志があるのではないなら、Webpack、Rollup、Parcelなどで依存関係を解決するのがいちばん素直な手段です。

投稿2021/08/23 06:31

maisumakun

総合スコア145265

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

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

revoiot

2021/08/23 06:57 編集

早速の回答ありがとうございます。 最初type="module"の記述なしにJSスクリプトを直接bladeに書いていましたが、 Uncaught SyntaxError: Cannot use import statement outside a moduleというエラーが出たため、type="module"を追記しました。 参考記事のhttps://github.com/joeattardi/emoji-buttonを見る限り、 下記スクリプトをどこかで呼んであげる必要がありそうですが、代わりにどのような記述をしてあげるべきでしょうか? ※”Webpack、Rollup、Parcelなどで依存関係を解決するのがいちばん素直な手段です。”の回答の意味を正確に理解できていないかもしれないです。すみません。 import { EmojiButton } from '@joeattardi/emoji-button'; const picker = new EmojiButton(); const trigger = document.querySelector('#emoji-trigger'); picker.on('emoji', selection => { // handle the selected emoji here console.log(selection.emoji); }); trigger.addEventListener('click', () => picker.togglePicker(trigger));
maisumakun

2021/08/23 07:01

> 代わりにどのような記述をしてあげるべきでしょうか? コードはそのままで構いません。それをWebpack、Rollup、Parcelといったツールで処理を行って、ブラウザで使えるJavaScriptに変換するのです。 (真っ正直に<script type="module">のままnpmライブラリを使おうとすると、「CommonJSが通らない」「使うライブラリの依存先を読み込むことができない」などの問題があるので、現状では早晩行き詰まります)
revoiot

2021/08/24 06:07

大変わかりやすく教えていただきありがとうございます! Webpackでコンパイルを行なって処理させたところ、無事絵文字機能が使えるようになりました。 参考になった記事 https://blog.capilano-fw.com/?p=2555#appjs
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.45%

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

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

質問する

関連した質問