JavaScriptでimport文を試したいが、実行できない

実現したいこと

JavaScriptでimport文を実行させたい。

発生している問題・分からないこと

JavaScriptでimportを試そうと、MDN importを参考に実行しようとしていますがうまくいきません。
importがうまくできていないようです。

実行すると
Firefoxブラウザで表示した場合は、consoleに

Loading module from "http://localhost:3000/modules/getPrimes.js" was blocked because of a disalloed MIME type("text/html").

と表示され、

chromiumブラウザで表示した場合は、consoleに

GET http://localhost:3000/modules/getPrimes.js net::ERR_ABORTED 404 (Not Found)

と表示されます。

該当のソースコード

ejs

1<!-- ex-gen-app/views/index.ejs -->2<!DOCTYPE html>3<html>4 <head>5 <title><%= title %></title>6 <link rel='stylesheet' href='/stylesheets/style.css' />7 8 </head>9 <body>10 <h1><%= title %></h1>11 <p>Welcome to <%= title %></p>12 13 <script type="module">14 15 import { getPrimes } from "./modules/getPrimes.js";16 17 console.log(getPrimes(10)); // [2, 3, 5, 7]18 19 </script>20 </body>21</html>

JavaScript

1// ./views/modules/getPrimes.js2 4 5export function getPrimes(max) {6 const isPrime = Array.from({ length: max }, () => true);7 isPrime[0] = isPrime[1] = false;8 isPrime[2] = true;9 for (let i = 2; i * i < max; i++) {10 if (isPrime[i]) {11 for (let j = i ** 2; j < max; j += i) {12 isPrime[j] = false;13 }14 }15 }16 return [...isPrime.entries()]17 .filter(([, isPrime]) => isPrime)18 .map(([number]) => number);19}

試したこと・調べたこと

上記の詳細・結果

googleやterarailで「javascript import」で検索しましたが、解決には至っていません。
googleで「Loading module was blocked because of a disalloed MIME type("text/html")」で検索してみましたが、解決には至っていません。

補足

Webサーバ:Express.js(localhost)
実行PC(サーバー):VirtualBox(ArchLinux)

よろしくお願いします。

コメントを投稿

0 コメント