2016-10-24 81 views
1

好吧,我對Babel有誤報錯誤。錯誤錯誤:構造函數名不應以小寫字母開頭babel/new-cap

這是控制檯中的錯誤。

ERROR in ./src/app/playlist/playlist.js 

/Users/macbook-lucas/refreex/src/app/playlist/playlist.js 
    6:23 error A constructor name should not start with a lowercase letter babel/new-cap 

✖ 1 problem (1 error, 0 warnings) 

@ ./src/app/playlist/index.js 12:16-37 
@ ./src/index.js 

這裏是代碼:

import {webtorrent} from 'webtorrent'; 

class PlaylistController { 
    contructor() { 
    this.TorrentId = 'magnet:?xt=urn:btih:6a9759bffd5c0af65319979fb7832189f4f3c35d&dn=sintel.mp4&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2Fsintel-1024-surround.mp4'; 
    this.Client = new webtorrent(); 
    } 
} 

export const playlist = { 
    templateUrl: "app/playlist/playlist.html", 
    controller: PlaylistController, 
    bindings: { 
    playlist: '<' 
    } 
}; 
+0

我對Babel一無所知,但是我的直覺說'new foo()'表達式應該構造一個類「foo」的對象。所以如果類名必須以大寫字母開頭,那就必須是'new Foo()'。或者'新的Webtorrent()',在你的情況下(參見第6行,根據錯誤信息)。 – rici

+0

不知道你覺得這是一個假陽性。在你的linter配置中某處,你已經啓用了'new-cap',現在你正在使用一個小寫的構造函數。該規則失敗了,因爲它應該。 – loganfsmyth

+0

我覺得你很困惑,這個錯誤是來自ESLint,不是Babel。 Babel會毫無問題地編譯這段代碼,但是你已經啓用了一個ESLint規則,這個規則會導致小寫構造函數出錯。 – loganfsmyth

回答

1

像RICI說:

我不知道通天什麼,但我的直覺說,表達新富()應該構造一個foo類的對象。所以如果類名必須以大寫字母開頭,那必須是新的Foo()。或新的Webtorrent(),你的情況(見錯誤消息,見第6行)。 -