從原本用CDN載入Vue,轉換為用npm載入並用webpack打包的過程中發生了錯誤,原因與Vue的使用環境有關。

原因

Vue依據不同的環境會需要使用不同的Vue檔案,以vue.esm-bundler為例,esm代表的是在程式碼中有使用ESModule,而bundler代表的是給webpack等打包工具使用的。

解決方式

在webpack的webpack.config.js中,使用下列程式碼將vue.esm-bundler指定別名為vue即可解決該問題

module.exports = {
    ...
    resolve: {
        alias: {
            vue: 'vue/dist/vue.esm-bundler.js'
        }
    }
    ...
}
參考資料