--- lang: ja-jp breaks: true --- # Webアプリ JavaScript で `import` を使用する場合、`type="module"` が必要 2024-03-22 ```javascript= import { Utils } from './utils.js'; ・・・ ``` * `type="module"`が無いと以下のようなエラーが発生する。 * `Uncaught SyntaxError: Cannot use import statement outside a module` ![image](https://hackmd.io/_uploads/r1Yy3Pc06.png) ## `export` していない JavaScript を HTMLの `script` タグで呼びす場合、`import` で別のモジュールを読み込んでいる場合は、``type="module"`` が必要。 * 以下はダメ ```html= <script src="./aaaa.js"></script> ``` * 以下で動作する。 ```html= <script src="./aaaa.js" type="module"></script> ``` ## ローカル環境で実行する場合は、http~ で始まるURLで実行する必要がある。 * 以下のようなエラーが発生する。 * `index.html:1 Access to script at 'file:///C:/xxxx/aaaaa.js' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, isolated-app, chrome-extension, chrome-untrusted, https, edge.` * `Failed to load resource: net::ERR_FAILED` ### 開発中は、VSCode の `Live Preview` を使用すれば良い。 ![image](https://hackmd.io/_uploads/HylnTv9Ra.png) ###### tags: `JavaScript` `import` `type="module"`