Node.jsで普通にimportを使おうとすると、
SyntaxError: Cannot use import statement outside a module
と怒られます。
いままではおとなしくrequireを使ってきましたが、世間はもう2021年。子供の頃思い描いていた未来です。
そう。流石にimportを使いたいので、ヒントを探していたところ、
Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
一緒にこんなメッセージが表示されていることに気づきました。
どうやら2つ解決策があるようです。
❶ package.jsonに"type": "module"を追加する
package.json
{ "type": "module" }
と、package.jsonに"type": "module"を追加したところ、確かにエラーは消えました。
ソースコード
package.json
{ "type": "module", "main": "index.js", "scripts": { "start": "node index.js" }, "dependencies": { "axios": "^0.26.0" } }
index.js
import axios from 'axios'; console.log(axios);
❷ import、exportを使いたいファイルの拡張子をmjsにする
index.js → index.mjs という感じで拡張子を変更しても、確かにエラーは消えました。
ソースコード
package.json
{ "main": "index.mjs", "scripts": { "start": "node index.mjs" }, "dependencies": { "axios": "^0.26.0" } }
index.mjs
import axios from 'axios'; console.log(axios);
electronでアプリを作ったりするとき、ずーっとrequireを使ってきたんですが、今後はimportを使おうと思いました。
が。よくよく調べてみると、残念ながら、どちらのやり方でもelectronには対応できないようです。
なので、今回の方法はNode.jsの開発で使おうと思います。無念。。