簡體   English   中英

nuxtjs與IE11兼容性問題_對象分配

[英]nuxtjs issue with IE11 compatibility_ object assign

IE兼容性使我受苦。 (我的vue版本是3.1.0,nuxt是2.3.4)

它使Object.assign保持錯誤。 這是我嘗試過的清單。

  • babel-preset-vue-app( https://www.npmjs.com/package/babel-preset-vue-app )。 聽說它不支持vue2.X。 我按照這篇文章的描述。 構建源代碼時出錯。

  • nuxt.config.js添加babel- nuxt.config.js 它沒有錯誤,但是在頁面上仍然出現Object.assign錯誤。

  • 安裝babel/plugin-transform-object-assign 它也不會在構建過程中犯任何錯誤,但是在頁面中有對象分配的東西。

有什么我可以嘗試兼容IE11的選項嗎?

這是我當前的.babelrcnuxt.config.js

.babelrc

{
    "presets": [
        [
            "env",
            {
                "modules": false
            }
        ],
        [ "vue-app",
            {
                "useBuiltIns": true,
                "targets": {
                    "ie": 9,
                    "uglify": true
                }
            }
        ]
    ],
    "plugins": [
        "@babel/plugin-transform-object-assign",
        "transform-vue-jsx",
        [
            "module-resolver",
            {
                "root": [
                    "./src"
                ],
                "alias": {
                    "~sbdc": "./src/sbdc"
                }
            }
        ]
    ]
}

nuxt.config.js中的構建選項

build: {
    babel: {
        presets: [
            ['vue-app', {
                useBuiltIns: true,
                targets: { ie: 9, uglify: true }
            }
            ]
        ]
    },
    optimization: {
        splitChunks: {
            chunks: 'all',                  
            maxInitialRequests: Infinity,       
            minSize: 0,                     
            cacheGroups: {              
              vendor: {
                  test: /[\\/]node_modules[\\/](babel-polyfill|moment|lodash|axios|get-size|jquery|js-cookie|jwt-decode|numeral|vuetify)[\\/]/,
                  name: 'utilityVendor'
                }
            }
        }
    },
    output: {
        publicPath: serviceConfig.pwa_publicPath || false
    },
    extractCSS: true,
    plugins: [
        new webpack.ProvidePlugin( {
            $: 'jquery',
            jQuery: 'jquery',
            'window.jQuery': 'jquery',
        } )
    ]
}

感謝您分享解決方案!

=======編輯於0114 ============

Etra信息#1。 當我在ie11瀏覽器上查看錯誤時,它將自動轉換如下代碼

return {layout:"popup",data:[{resultBody:Object.assign(Object.create(null), ... sorry, sensitive data

而原始代碼是...

asyncData: async function ({req}) {
    return {
        resultBody: req.body,
    };
},

req.bodybody-parser支持。

經過數小時的奮斗,我用不好的方法解決了這個問題(在我的想法中)。

我只是將對象分配 polyfill js添加到nuxt.js

module.exports = {

    ...

    head: {
        script: [ { src: '/js/object-assign.js' } ]
    },

    ... 

};

但是我仍然想知道將babel-polyfill應用於nuxt項目的正確方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM