DOMContentLoaded イベントで以下に文字列を出力します。
$ npm i -D uglify-es sass
all: js css
js: main.min.js utils.mjs
css: main.min.css
main.min.js: js/main.js
./node_modules/.bin/uglifyjs js/main.js -c -m \
-o js/main.min.js --source-map "root='..',url=main.min.js.map"
utils.mjs: js/utils.js
./node_modules/.bin/uglifyjs js/utils.js -c -m \
-o js/utils.mjs --source-map "root='..',url=utils.mjs.map"
main.min.css: css/main.scss
./node_modules/.bin/sass css/main.scss css/main.min.css
clean:
rm js/main.min.js
rm js/main.min.js.map
rm js/utils.min.js
rm js/utils.min.js.map
rm css/main.min.css
rm css/main.min.css.map
--source-map
オプションで root='..'
を指定しているのがポイント<head>
...
<link rel="stylesheet" href="css/main.min.css">
...
</head>
<body>
...
<script type="module" src="js/main.min.js"></script>
</body>
type="module"
と指定することで、import
が使えるようになる。import utils from "./utils.mjs";
console.log("main.js loaded");
window.addEventListener("DOMContentLoaded", (event) => {
utils.say("Hello, Static Import!");
document.querySelector("#output").textContent="DOM fully loaded and parsed!!";
});
export default {
say: (msg) => {
console.log(msg);
}
};