我正在使用带有打字稿支持的 vue cli 3。实际上,我正在尝试使用 vuejs 创建 Web 组件。
主文件
import Vue from 'vue';
import './plugins/vuetify';
import App from './App.vue';
import router from './router';
import store from './store';
import wrap from '@vue/web-component-wrapper';
import RoleManagement from './views/role-management/RoleManagement.vue';
const CustomElement = wrap(Vue, RoleManagement);
window.customElements.define('custom-component', CustomElement);
Vue.config.productionTip = false;
new Vue({
router,
store,
render: (h) => h(App),
}).$mount('#app');
Run Code Online (Sandbox Code Playgroud)
创建web组件的命令如下,
vue-cli-service build --target wc --name custom-component ./src/main.ts
在出现这个错误后,
找不到模块“@vue/cli-plugin-babel”
我正在使用 Mocha 和 chai 为 vue cli 3 编写单元测试。我试过嘲笑localstorage。但仍然收到此错误 - 'localStorage 未定义'。任何人都可以在这里帮助我吗?
我的代码是这样的 -
import { expect, assert } from 'chai';
import { shallowMount } from '@vue/test-utils';
import LoginComponent from '@/views/LoginComponent.vue';
import Constants from '@/constants';
declare var global: any;
let wrapper;
let componentInstance: any;
let authData;
var mockLocalStorage = {
getItem(key: any) {
if (key === 'access_token') { return '/* a token object */'; }
return 'null';
}
};
describe('LoginComponent.vue', () => {
beforeEach(() => {
global.window = { localStorage: …Run Code Online (Sandbox Code Playgroud) 我的代码中有文件数组。当我添加新文件时,它显示的数组长度不正确。但是,如果我用 settimeout 检查长度,它会显示正确的长度。
console.log('row.myDocuments: ', row.myDocuments);
console.log('length: ', row.myDocuments.length);
Run Code Online (Sandbox Code Playgroud)
在这样的控制台中获得结果,
每次添加新文件时,控制台中的长度为(实际长度-1)
vue-cli-3 ×2
angular ×1
arrays ×1
babeljs ×1
chai ×1
console ×1
mocha.js ×1
typescript ×1
unit-testing ×1