喜大普奔,Nuxt終于正式發(fā)布2.0了,最近趁熱把博客從1.4升級到了2.0,并且用Typescript重構(gòu)了下,可以點(diǎn)Jooger.me看下,在升級Nuxt過程中出現(xiàn)了一個小問題

關(guān)于release 2.0的公告可以查看官網(wǎng)的Release Notes以及官方的Demo,升級過程十分簡單,基本不需要什么遷移成本,所有npm命令都跟以前一樣,只需要把一些關(guān)聯(lián)包升級一下即可
今天出現(xiàn)的問題是這樣的,隨著nuxt升級,webpack和vue-loader也分別升級到了4和15,升級過后,報(bào)了如下問題
Invalid source file: ***.vue. Ensure that the files supplied to lint have a .ts, .tsx, .d.ts, .js or .jsx extension.
一般看到這個extension的問題都下意識地想到webpack的resolve.extensions沒有配置.ts或者.tsx擴(kuò)展,但其實(shí)不然,仔細(xì)看前半句會發(fā)現(xiàn)是在處理.vue文件的時候報(bào)的這個錯,所以很容易就想到應(yīng)該是vue-loader的問題了,在vue-loader的這個issue討論了這個問題
耐心查看完,會發(fā)現(xiàn)其實(shí)是tslint-loader的typeCheck在作怪,如果開啟這個選項(xiàng),那就會導(dǎo)致上述錯誤,理由是這個選項(xiàng)導(dǎo)致在構(gòu)建的時候tslint會lint整個vue文件,而不單單是文件里的ts部分,所以直接解決辦法是把tslint-loader的typeCheck去掉
至于為啥會lint全文件,這個后續(xù)再驗(yàn)證下,應(yīng)該是vue-loader15的對vue文件進(jìn)行拆分時出現(xiàn)問題
而且關(guān)掉typeCheck會出現(xiàn)什么問題,目前還未發(fā)現(xiàn)
到這里可以其實(shí)再進(jìn)一步思考一下,為啥vue-cli3的tslint沒有報(bào)錯了,看了下vue-cli的ts插件cli-plugin-typescript里的代碼
addLoader({
loader: 'ts-loader',
options: {
transpileOnly: true,
appendTsSuffixTo: ['\\.vue$'],
// https://github.com/TypeStrong/ts-loader#happypackmode-boolean-defaultfalse
happyPackMode: useThreads
}
})
// make sure to append TSX suffix
tsxRule.use('ts-loader').loader('ts-loader').tap(options => {
options = Object.assign({}, options)
delete options.appendTsSuffixTo
options.appendTsxSuffixTo = ['\\.vue$']
return options
})
config
.plugin('fork-ts-checker')
.use(require('fork-ts-checker-webpack-plugin'), [{
vue: true,
tslint: options.lintOnSave !== false && fs.existsSync(api.resolve('tslint.json')),
formatter: 'codeframe',
// https://github.com/TypeStrong/ts-loader#happypackmode-boolean-defaultfalse
checkSyntacticErrors: useThreads
}])
名稱欄目:Nuxt升級2.0.0時出現(xiàn)的問題(小結(jié))-創(chuàng)新互聯(lián)
URL地址:http://chinadenli.net/article44/eohee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、虛擬主機(jī)、品牌網(wǎng)站制作、網(wǎng)站維護(hù)、ChatGPT、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容