0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Webpack】jsファイルのimportがうまくいかない時のエラー2連続と対処

Last updated at Posted at 2021-04-27

typescriptのコンパイルをwebpack経由でコンパイルを試しているときにエラーが発生。
発生エラーと対処内容が順番を追ってのものとなりました。

##環境
・ローカル環境で動作確認。
・webpack5系

typscriptで書いたコードをwebpackでjsにコンパイルし、そのコンパイル後のjsファイルをindex.htmlで読み込んでいます。
で、読み込んでいるhtmlファイルのコンソールに出たエラーと対処方法です。

##発生エラー1

SyntaxError: import declarations may only appear at top level of a module

モジュールではimportはトップレベルで宣言してね、というもの
コンパイル後のjsファイルでも最初に宣言していたのですが。。
少し調べてみるとそもそものhtmlから、スクリプトファイルを読み込むtypeにmoduleを指定している必要があったようです。

参考:https://stackoverflow.com/questions/42237388/syntaxerror-import-declarations-may-only-appear-at-top-level-of-a-module

こちらを参考に

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

と指定。
すると、今度は下記のエラーとなりました。
##発生エラー2

クロスオリジン要求をブロックしました:
 同一生成元ポリシーにより、file:///Users/xxxx/プロジェクトフォルダ/dist/index.js
 にあるリモートリソースの読み込みは拒否されます (理由: CORS 要求が http でない)。

これはいろいろ調べていると、
ローカル環境でもサーバー起動上での動作ではない場合、クロスオリジン要求になってしまうみたいですね。。。
ここ最近のブラウザにセキュリティ対策の高まりによるものっぽい。

参考:https://qiita.com/terufumi1122/items/39b2a3659bc585c07f64

ということでwebpack-live-serverでローカルサーバを起動し正常に読み込めました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?