You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Webpack/Babel-loader引入JS文件在iOS9(iPad)中失效问题求助

问题:Cordova+Vue.js+Webpack构建的应用在iOS 9.3.5设备上导入JS文件后抛出SyntaxError

我正在用Webpack构建一款Cordova/Vue.js应用,相关配置和遇到的问题如下:

开发依赖(package.json)

"devDependencies": { 
  "babel-core": "^6.26.0", 
  "babel-loader": "^7.1.2", 
  "babel-polyfill": "^6.26.0", 
  "babel-preset-env": "^1.7.0" 
  // 其他依赖省略
}

Webpack配置(webpack.config.js)

const CONFIG = { 
  entry: { 
    app: ["babel-polyfill", path.join(PATHS.SRC_JS, 'app.js')], 
  }, 
  output: { 
    path: PATHS.DIST, 
    filename: './js/[name].js' 
  }, 
  module: { 
    rules: [ 
      { 
        test: /\.js$/, 
        exclude: /node_modules\/(?!(swiper)\/).*/, 
        use: [ 
          { 
            loader: 'eslint-loader', 
            options: { emitWarning: true, noConsole: 0 } 
          }, 
          { 
            loader: 'babel-loader', 
            options: { presets: ['env'] } 
          } 
        ] 
      }, 
      // .VUE 文件处理
      { test: /\.vue$/, loader: 'vue-loader' } 
    ] 
  }, 
}; 
module.exports = CONFIG;

问题现象

  1. 当app.js中仅包含以下代码时:
console.log('app.js') 
import style from '../css/sass/main.scss'; 
import config from '../assets/config.json';

执行Webpack和Cordova编译后,在iPad mini(iOS 9.3.5)上可正常运行,控制台能输出app.js。

  1. 但添加任意JS文件的导入语句后,比如:
import style from '../css/sass/main.scss'; 
import Preloader from './components/preloader-component.js'; 
import config from '../assets/config.json';

iPad的控制台就会报错:

SyntaxError : Unexpected token ')' in app.js:1

注意:在Xcode的iOS模拟器中构建应用可以正常运行,仅在iOS 9.3.5的实体iPad上出现该问题。


已解决!

最终定位到问题是Babel未正确转译ES6代码,导致iOS 9.3.5的Safari无法解析。解决方法很简单:把Webpack配置中的Babel配置项移到单独的.babelrc文件中即可!

如果有其他开发者遇到相同的问题,可以参考这个解决方案。

内容的提问来源于stack exchange,提问作者David Anquetin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:41:56