[英]Eslint not defined issue with imports
我有一個像這樣的App.js文件:
import './bootstrap';
if (document.getElementById('vue')) {
new Vue({
});
}
它導入一個引導javascript文件,該文件包含Vue npm包(節點模塊)。
在我的引導文件中,我將其導入為:
import Vue from 'vue';
當我使用此設置運行eslint時,卻被告知:
未定義“ Vue”。
如果eslinter僅檢查每個文件,這似乎很明顯,因為實際上Vue變量是在導入的文件中定義的。 是否可以徹底解決此問題,還是必須針對這種情況編輯.eslintrc.js
?
我相信ES6導入僅適用於當前文件(這是模塊系統的主要優點–避免了全局污染)。 導入沒有綁定的模塊也不會使該模塊的導入可用。 它們僅適用於該模塊。
您有幾種選擇:
您可以在需要的任何位置顯式導入它(模塊的預期方式)。
import Vue from 'vue';
您可以從引導文件中導出Vue(以及其他任何內容)並導入所有內容:
在bootstrap.js中:
import Vue from 'vue'; export { Vue };
在App.js中:
import * as bootstrap from './bootstrap'; const Vue = bootstrap.Vue;
window.Vue = Vue;
您可以在.eslintrc
嘗試很少的eslint 配置 ,以.eslintrc
正常工作。 es6-modules出現此錯誤,您可以嘗試使用以下配置:
{
"parserOptions": {
"ecmaVersion": 6,
"sourceType": "module",
"ecmaFeatures": {
"jsx": true
}
},
"rules": {
"semi": 2
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.