どうせなら時計をiPhoneでも動かしてみたいって事で、javascriptをあーしてこーして動かしてみるの巻。

なんでiPhoneのSafariで動かないかって言うと、javascriptのバーションes2015は実行出来るもののモジュールのimportには対応していないからです。なのでモジュールを結合(バンドル)する必要があります。

es2015をes5にトランスパイルします、babelのお仕事です。それからwebpackを使ってバンドルします。んで、iPhoneでも動くヤツ

スクリプトは書き換えてないので、マウスオーバー(rollover)が動きません。スマホにマウスはありませんから…。

以降は設定もろもろ。

トランスパイルとバンドルに必要なbabelとwebpackの準備

> npm i -D @babel/core @babel/preset-env @babel/plugin-proposal-class-properties
> npm i -D webpack webpack-cli copy-webpack-plugin babel-loader

webpack.config.jsの中身

const path = require("path");
const CopyWebpackPlugin = require("copy-webpack-plugin");
let copyWebpack_client = new CopyWebpackPlugin({
    patterns: [
        {
            from: "./**/*.{html,css}",
            to: "./",
            context: "./src",
        },
    ],
});
let babel_transpile = {
    loader: 'babel-loader',
    options: {
        presets: [
            '@babel/preset-env',
        ],
        plugins:[
            '@babel/plugin-proposal-class-properties',
        ]
    }
}
let for_client ={
    target: "web",
    mode: "production",
    entry: {"main":"./src/main.js"},
    output:{
        path: path.resolve(__dirname,"dist"),
        filename: "[name].js"
    },
    module: {
        rules: [
            {
                test: /\.js$/,
                use: [babel_transpile]
            }
        ]
    },
    plugins: [copyWebpack_client]
};
module.exports = () => {
    return [for_client]
}

このあたりWebStorm IDEがよしなにやってくれないんでしょうか?ここまでやるとVS codeと手間は変わらない気がする。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です