首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >vue cli webpack破解IE10

vue cli webpack破解IE10
EN

Stack Overflow用户
提问于 2018-01-29 09:42:25
回答 1查看 972关注 0票数 0

现在我使用的是webpack配置的vue-cli,这在Internet 10上遇到了麻烦。问题是webpack没有将letconst转换为var,IE10不支持letconst这样的ES5变量。

下面是webpack.base.conf.js代码。

代码语言:javascript
复制
module.exports = {
  context: path.resolve(__dirname, '../'),
  entry: {
    app: ['babel-polyfill','./src/main.js'],

  },
  output: {
    path: config.build.assetsRoot,
    filename: '[name].js',
    publicPath: process.env.NODE_ENV === 'production'
      ? config.build.assetsPublicPath
      : config.dev.assetsPublicPath
  },
  resolve: {
    extensions: ['.js', '.vue', '.json'],
    alias: {
      'vue$': 'vue/dist/vue.esm.js',
      '@': resolve('src'),
    }
  },
  module: {
    rules: [
      ...(config.dev.useEslint ? [createLintingRule()] : []),
      {
        test: /\.vue$/,
        loader: 'vue-loader',
        options: vueLoaderConfig
      },
      {
        test: /\.js$/,
        loader: 'babel-loader',
        include: [resolve('src'), resolve('test')]
      },
      {
        test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
        loader: 'url-loader',
        options: {
          limit: 10000,
          name: utils.assetsPath('img/[name].[hash:7].[ext]')
        }
      },
      {
        test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
        loader: 'url-loader',
        options: {
          limit: 10000,
          name: utils.assetsPath('media/[name].[hash:7].[ext]')
        }
      },
      {
        test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
        loader: 'url-loader',
        options: {
          limit: 10000,
          name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
        }
      }
    ]
  },
  node: {
    // prevent webpack from injecting useless setImmediate polyfill because Vue
    // source contains it (although only uses it if it's native).
    setImmediate: false,
    // prevent webpack from injecting mocks to Node native modules
    // that does not make sense for the client
    dgram: 'empty',
    fs: 'empty',
    net: 'empty',
    tls: 'empty',
    child_process: 'empty'
  }
}

并将编译后的代码抛出一个错误SCRIPT1002,其代码位于IE10的下面一行。

...let a=..。

然而,我所知道的是webpack基本上把letconst转化为var,但是,结果并非如此。我怎么才能强迫自己改变呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-31 04:52:56

问题是.不是vue本身,而是node_modules中的包。其中一个包基本上没有被转移(在我的例子中,是buefy库),所以我必须手动传输。

溶液

webpack.base.conf.js

  • 在传输条目中添加buefy (如我所知,vue-cli webpack会忽略node_modules中的包以解决性能问题)。 { test: /.js$/,加载程序:'babel-loader',包括:/node_node\/buefy/,解析(‘src’),解析(‘test’) },
  • 添加用于导入手动传输包的新别名。 决议:{扩展名:‘..js’、'.vue‘、’..json‘、别名:{ 'vue$':'vue/dist/vue.esm.js’、'@':决心(‘src’)、'buefy$':解析(‘节点_模块/buefy/src’)、}}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48498263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档