Cannot assign to read only property 'exports' of object

项目报错:
TypeError: Cannot assign to read only property 'exports' of object '#<Object>'

项目结构是:react+redux+antd
路由用的是browser history
目前是版本如:
"react-redux": "^5.0.5",
"react-router": "^4.1.2",
"react-router-dom": "^4.1.2",
"react-router-redux": "^4.0.8",
"redux": "^3.7.2",
"redux-thunk": "^2.2.0",
运行报错:

clipboard.png
请问是需要配置哪里吗?

阅读 10k
2 个回答

将 commonJS 的 module.exports = ... 改为 ES6 的 export default ...

The code above is ok. You can mix require and export. You can't mix import and module.exports.
require 和 export 可混用,但是 import 和 module.exports 不能混用。

但是我没有混用,还是出现了这个问题,我的代码:

//function.js
let geoCoordMap = require('./geoCoordMap')
let Utils = {}
//....
export {
  getDateYYMMDD, getDiff, convertData
} //这样导出就不报错
// module.exports = Utils //这样导出 在 `require('@/utils/function')`报错 但是我确实没混用啊 我哪儿混用了吗?

index.vue:

let echarts = require('echarts')
let { getDateYYMMDD, getDiff } = require('@/utils/function')// 这里报错
let today = getDateYYMMDD({ before: 0 })
var updateTime = 1000 * 5
let locations = require('@/utils')
let { errorsUrl } = require('@/utils/url')
export default {
//..
}

以上情况没有混用,可是依然报错,还望大佬解答一下。


第二种报错情况:

//function.js
let geoCoordMap = require('./geoCoordMap')
let Utils = {}
//....
//export {
//  getDateYYMMDD, getDiff, convertData
//} 
module.exports = Utils
//这样导出 在 `import { getDateYYMMDD, getDiff } from '@/utils/function'`报错  
//或者 `module.exports = Utils` 出报错。

import ... from 混用:

let echarts = require('echarts')
import { getDateYYMMDD, getDiff } from '@/utils/function'  //这是确实是混用了。
//let { getDateYYMMDD, getDiff } = require('@/utils/function')
let today = getDateYYMMDD({ before: 0 })
var updateTime = 1000 * 5
let locations = require('@/utils')
let { errorsUrl } = require('@/utils/url')

参考:
Cannot assign to read only property 'exports' of object '#<Object>' (mix require and export)
Babel 7 Upgrading creating error: “TypeError: Cannot assign to read only property 'exports' of object '#<Object>'”

webpack can‘t mix import and module.exports.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏