vue-cli3 打包时使用‘babel-loader’遇到Cannot assign to read only property ‘exports’ of object '#'问题的解决方法。

原文链接:http://www.pianshen.com/article/9677274805/

第一种原因就是import和module.exports的混用要知道commonJS和ES6的语法是不太一样的前者是require和module.exports后者则是import和exports,当你混用这两个语法的时候,webpack就会报错,也就是第一种情况。为了使编译好的程序能在大多数浏览器下运行。
webpack里面有一个编译器叫Babel,负责把ES6的语言转化为commonJS以兼容绝大多数浏览器。当你混用这两个语法的时候你可以使用babel的commonJS模式帮你把import编译成require。
  然而第二种情况就是你要使用@babel/plugin-transform-runtime这个插件的时候,同时你又在某个commonJS写的文件里使用这个插件时,babel会默认你这个文件是ES6的文件,然后就使用import导入了这个插件,从而产生了和第一种情况一样的混用错误。解决方法是在babel.config.js里配置unambiguous设置,让babel和webpack一样严格区分commonJS文件和ES6文件

解决方法:

module.exports = {
  presets: [
    ‘@vue/app‘
  ],
  sourceType:‘unambiguous‘
}

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

以vxe-table 兼容ie9的部分配置

1.安装依赖

npm install -D babel-loader @babel/core @babel/preset-env webpack

2.配置vue.config.js

module.exports = {
  // ...
  configureWebpack: {
    module: {
      rules: [
        {
          test: /\.m?js$/,
          // exclude用上面配置的话,默认是过滤不编译node_modules 路径下的文件
          // exclude: /(node_modules|bower_components)/,
          // include 指定需要编译的路径
          include: [
            resolve(‘src‘),
            resolve(‘node_modules/xe-utils‘),
            resolve(‘node_modules/vxe-table‘),
            // resolve(‘node_modules/vxe-table-plugin-iview‘),
          ],
          use: {
            loader: ‘babel-loader‘,
            options: {
              presets: [‘@babel/preset-env‘]
            }
          }
        }
      ]
    }
  },
  // ...
}

2.修改babel.config.js

module.exports = {
  presets: [
    ‘@vue/app‘
  ],
  sourceType:‘unambiguous‘
}

3.Chrome 及 ie9 展示效果

vue-cli3 打包时使用‘babel-loader’遇到Cannot assign to read only property ‘exports’ of object '#'问题的解决方法。

原文地址:https://www.cnblogs.com/ysxq/p/11611543.html

时间: 2024-11-06 10:16:08

vue-cli3 打包时使用‘babel-loader’遇到Cannot assign to read only property ‘exports’ of object '#'问题的解决方法。的相关文章

关于vue-cli3打包时遇到Cannot assign to read only property 'exports' of object '#<Object>'问题的解决方法。

vue-cli3打包时遇到Cannot assign to read only property 'exports' of object '#<Object>'问题的解决方法. 大致是说,在webpack打包的时候,可以在js文件中混用require和export.但是不能混用import 以及module.exports. 因为webpack 2中不允许混用import和module.exports,   为了使编译好的程序能在大多数浏览器下运行.webpack里面有一个编译器叫Babel,

Vue的报错:Uncaught TypeError: Cannot assign to read only property &#39;exports&#39; of object &#39;#&lt;Object&gt;&#39;

Vue的报错:Uncaught TypeError: Cannot assign to read only property 'exports' of object '#<Object>' 1.运行一下以前的一个Vue+webpack的 vue仿新闻网站  小项目,报错 由于自己vue学习不深入,老是这个报错,找了好久(确切的说是整整一下午^...^)才找到原因 -v- Uncaught TypeError: Cannot assign to read only property 'expor

vue 项目启动报错:Cannot assign to read only property &#39;exports&#39; of object &#39;#&lt;Object&gt;&#39;

最近做项目,打开一个新项目,在启动时报错 查询百度结果是 在webpack打包的时候,可以在js文件中混用require和export.但是不能混用import 以及module.exports. 因为webpack 2中不允许混用import和module.exports, 但是在经过我试验之后,发现不起作用,再去百度,发现一个解决办法: 执行npm: npm install babel-plugin-transform-es2015-modules-commonjs 然后在 babelrc文

Vue报错:Uncaught TypeError: Cannot assign to read only property &#39;exports&#39; of object 的解决方法

问题是这样的:如下>> 解决办法: 1“:我的webpack 最高版本,造成 混用import和module.exports :所以降低webpack版本 安装指定版本:npm install [email protected] -g 例如:npm install [email protected] -g 删除 编译目录文件: 2重新生成 然后输入启动命令: 成功解决!效果: 方法二: 注释掉后一个 重新生成,启动项目 OK! Vue报错:Uncaught TypeError: Cannot

Vue报错:Uncaught TypeError: Cannot assign to read only property’exports‘ of object’#&lt;Object&gt;‘的解决方法

因为webpack 2中不允许混用import和module.exports , 解决办法就是统一改成ES6的方式编写即可. import { copyDeep } from '@/libs/tools.js'; export default copyDeep; 原文地址:https://www.cnblogs.com/easonw/p/10595576.html

关于json解析时异常org.json.JSONException: A JSONObject text must begin with &#39;{&#39; at character 1 of ?{的解决方法

出现这个异常的原因是json串格式不正常,没有"{"开始或没有"}"结尾,仔细检查下json文件的格式一般就可以解决这个问题.但是有时候json文件是正常的,仍然有这个异常信息,怎么办呢,这个是因为你的json文件头里带有编码字符(如UTF-8等),读取字符串时json串是正常的,但是解析就有异常,一般会出现这样的情况是读取的json串是来自于服务器或本地的文件,文件头里自带编码,就我碰到情况来看在Android2.1的手机会报异常,高于2.1的手机是正常的. 解决

删除合并快照时因磁盘空间不够导致快照管理器看不到快照无法完成的解决方法

VMWare Workstation合并快照时因磁盘空间不够导致快照管理器看不到快照无法完成的解决方法 ?Lander Zhang 专注外企按需IT基础架构运维服务,IT Helpdesk 实战培训践行者博客:https://blog.51cto.com/lander IT Helpdesk实战培训视频课程:https://edu.51cto.com/lecturer/733218.html 为什么要创建及删除合并快照? 搭建试验测试环境时,为了减少搭建时产生的未知错误导致已经完成的部分前功尽弃

vue.js 打包时出现空白页和路径错误

vue-cli输入命令:npm  run  build 即可打包vue.js的项目 打包出来后项目中就会多了一个文件夹dist,下图为我们打包过后的项目 我们直接运行打包后的文件夹中的index.html文件,会看到网页一片空白,f12调试,全是css,js路径引用错误的问题. 解决:到config文件夹中打开index.js文件. 文件里面有两个assetsPublicPath属性,更改第一个,也就是更改build里面的assetsPublicPath属性: assetsPublicPath属

vue cli3 打包到tomcat上报错问题

首先  项目打包步骤 1.vue config.js  添加 publicPath: './', // 公共路径 assetsDir:'static', 2.将代理注释掉 proxy 报错: 一直报错误 原因:代码写的有错误 例如 这种写法是错误  打包的时候报错 const baseAdd = { "canClickSelf":true, "title": "添加", "icon":"icon_tianjia&qu