我从源代码编译了vue-flash-message组件,并收到以下警告:
✘ http://eslint.org/docs/rules/no-param-reassign Assignment to property of function parameter 'Vue'
src\components\vue-flash-message\index.js:173:5
Vue.prototype[options.storage] = FlashBus;
在以下代码中:
export default {
install(Vue, config = {}) {
const defaults = {
method: 'flash',
storage: '$flashStorage',
createShortcuts: true,
name: 'flash-message',
};
const options = Object.assign(defaults, config);
...
const FlashBus = new Vue({
data() {
return {
storage: {
},
};
},
methods: {
flash(msg, type, opts) {
return new FlashMessage(FlashBus, msg, type, opts);
},
push(id, message) {
Vue.set(this.storage, id, message);
},
destroy(id) {
Vue.delete(this.storage, id);
},
destroyAll() {
Vue.set(this, 'storage', {});
},
},
});
...
Vue.prototype[options.storage] = FlashBus;
...
},
};
是否可以更正代码并使其在没有警告的情况下进行编译?
答案 0 :(得分:1)
这不是问题。
您为no-param-reassign
设置了ES Lint规则。这与Vue
的创建插件的方式相冲突,在这种方式下,您被引导直接写入prototype
。 You can see my statement reinforced here
您唯一的选择是fork
该项目,如果它给您带来很多麻烦,请忽略与棉短绒的搭配。