実現したいこと
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 コメント