常见error集合
Cannot use import statement outside a module
- 原因:在commonJS中用了es6的语法,import。
- 分析: 一般我们的运行环境按照模块化标准来分,可以分为es6和commonJS两种,在es6中引入模块用import,在commonJS中用require。在你的环境中,全局下,输出this,如果指向的是
undefined
,那么就是es6,否则是commonJS - 解决方法
- 把文件改成
.ts
后缀 - 或者import改成require
- 把文件改成
ERROR Invalid options in vue.config.js: “resolve“ is not allowed
- 原因:在Vue CLI中,webpack配置是通过webpack-merge来合并的,而不是直接在vue.config.js中配置。
- 分析:两个文件可以共存,都是用来声明配置的。只不过着重点不同,vue.config.js声明vue项目的配置,webpack.config.js声明全局的配置。至于出现了这个问题,显然是因为在vue.config.js中使用了webpack.config.js的配置语法
- 解决
- 下载
webpack-merge
,配置webpack.config.js
:
- 下载
const { merge } = require('webpack-merge');
const defaultConfig = require('@vue/cli-service/webpack.config.js');
function resolve(p){
return path.resolve(__dirname,p)
}
module.exports = merge(defaultConfig, {
// 自定义配置
resolve:{
alias:{
'@':resolve('src')
}
}
});
Unexpected console statement (no-console)
解决方法
创建文件.eslintrc.js
module.exports = {
rules: {
'no-console': 'off',
"no-restricted-syntax": [
"error",
{
"selector": "CallExpression[callee.object.name='console'][callee.property.name!=/^(log|warn|error|info|trace)$/]",
"message": "Unexpected property on console object was called"
}
]
}
}
app.use is not a function in vue (vue2)
const app=new Vue({
render: h => h(App),
})
app.use(plugin)
app.$mount('#app') // 为什么会报错:app.use is not a function
在Vue中,使用插件需要在创建Vue实例之前调用Vue.use(plugin)
。
Vue.use(plugin)
const app = new Vue({
render: h => h(App),
})
app.$mount('#app')