vue模塊導入報錯問題Module not found: Error:[CaseSensitivePathsPlugin]
vue Module not found: Error:[CaseSensitivePathsPlugin]
今天學習vue項目練手時,出了一個小小的錯誤:

檢查了下,發(fā)現(xiàn)自己在模塊導入的時候沒有和組件文件名大小寫完全一致造成的。

改為上述,即必須和文件名一毛一樣,大小寫敏感,唉。
vue批量導入模塊
在基于vue-element-admin的開發(fā)時,每添加一個路由文件就要到另外一個文件里import相應(yīng)的模塊,這樣開發(fā)起來不友好,如果有一種方法批量導入這些新增的文件,開發(fā)起來就方便多了。
這時我們可以使用require-context()方法,詳見。
我們約定一個規(guī)則就是路由文件由export default拋出路由配置,代碼也是判斷是否是由export default來篩選導入的。
src/utils/require-dir.js
export function requireDir(files, expendFiles = ['./index.js']) {
? let list = []
? files.keys().forEach(key => {
? ? if (expendFiles.includes(entryFile)) return
? ? // 必須是export default
? ? if (files(key).default) {
? ? ? list = list.concat(files(key).default)
? ? }
? })
? return list
}src/router/index.js
// 獲取module文件里的路由
import { requireDir } from '@/utils/require-dir.js'
const routers = requireDir(require.context('./module', true, ['./index.js'])
//然后使用 ?...routers ?添加到路由里邊同樣,mockapi也可以使用這種方法來批量導入文件。
值得注意的是直接使用require.context會報錯(require.context is not a function),這是因為項目中webpack不認這個文件,我們可以通過外部導入來引用這個功能。
cnpm install --save-dev require-context
使用上述方法
mock/index.js
import { requireDir } from '../src/utils/require-dir.js'
const requireContext = require('require-context');
const apiList = requireDir(requireContext('../../mock', true, /\.js$/), ['index.js','mock-server.js'])
const mocks = [
?? ?... apiList
]要注意的是,此時requireContext的當前目錄是node_modules/_require-context…根據(jù)當前目錄找到mock
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue.js中Line第三方登錄api的實現(xiàn)代碼
這篇文章主要介紹了Vue.js中Line第三方登錄api實現(xiàn)代碼,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06
vue中如何使用echarts動態(tài)渲染數(shù)據(jù)
這篇文章主要給大家介紹了關(guān)于vue中如何使用echarts動態(tài)渲染數(shù)據(jù)的相關(guān)資料,echarts是一款基于JavaScript的開源可視化圖表庫,它通過簡單的配置即可實現(xiàn)各種各樣的可視化效果,需要的朋友可以參考下2023-11-11
Vscode關(guān)閉Eslint語法檢查的多種方式(保證有效)
eslint是一個JavaScript的校驗插件,通常用來校驗語法或代碼的書寫風格,下面這篇文章主要給大家介紹了關(guān)于Vscode關(guān)閉Eslint語法檢查的多種方式,文章通過圖文介紹的非常詳細,需要的朋友可以參考下2022-07-07

