我正在编写Vue插件,但是当我尝试向其添加JSON.stringify
时,我在浏览器中出现运行时错误,页面变为空白。我写的插件文件中的任何地方JSON.stringify
我收到错误:
未捕获的TypeError:无法分配给只读属性' exports'对象#'
如果我直接将JSON.stringify写入组件(例如,在'创建的'生命周期钩子中),则没有任何反应。
这在webpack编译期间不是错误,它只发生在eval
内的浏览器中。发生错误的行如下所示:
eval("/* WEBPACK VAR INJECTION */(function(module) {Object.defineProperty(__webpack_exports__ ....")
这是插件文件中的内容
var MyPlugin = function () {
}
JSON.stringify({})
MyPlugin.secret = 'vue-plugin-secret'
MyPlugin.install = function (Vue, options) {
}
module.exports = MyPlugin
// export default MyPlugin
这就是我在组件中得到它的方式:
var MyPlugin = require('./MyPlugin')
如果我对JSON.stringify
行发表评论,则错误会停止。
@edit
做了@Saurabh建议,使用' import'所以我不得不改变插件的导出形式
//MyPlugin.js
export default MyPlugin
在.vue组件中我做了
import MyPlugin from './MyPlugin';
这修复了错误,但是这是什么原因?一些webpack配置? (我使用webpack
的默认vue-cli
配置)