三角形 有人說三維模型的基本單元是三角形。比如複雜的游戲角色,也只是用許多三角形畫出來的。 不管上述說法是否屬實,本篇先把三角形畫出來。 如何繪製一個三角形 滑鼠點擊繪點示例我們寫了這樣的代碼: points.forEach(item => { gl.vertexAttrib3f(a_Positio ...
問題及背景
最近在現有Vue2項目中引入VuePress文檔工具,編寫基於ElementUI的組件文檔。結果出現了詭異的”Error from chokidar (D:\): Error: EBUSY: resource busy or locked, lstat 'D:\pagefile.sys'報錯。
從報錯信息看不出任何有幫助的提示,參考網上的方法刪除重裝node_modules,問題依舊。
初始代碼:
// enhanceApp.js import 'element-ui/lib/theme-chalk/index.css'; import ElementUI from 'element-ui';
//import { Button } from 'element-ui'; // 單獨引入同樣報錯
export default async ({ Vue }) => { Vue.use(ElementUI, {size: 'mini'}); }
報錯信息:
success [14:16:24] Build 59369a finished in 4897 ms! > VuePress dev server listening at http://localhost:8080/ Error from chokidar (D:\): Error: EBUSY: resource busy or locked, lstat 'D:\pagefile.sys'
問題排查
嘗試將文檔獨立為一個新項目,則沒有問題。於是考慮是依賴衝突問題,但具體是哪個依賴則不得而知。
於是只能排除法一個個組件測試。
// enhanceApp.js import Alert from 'element-ui/lib/alert.js'; import Aside from 'element-ui/lib/aside.js'; import Autocomplete from 'element-ui/lib/autocomplete.js'; import Avatar from 'element-ui/lib/avatar.js'; import Backtop from 'element-ui/lib/backtop.js'; //中間省略。。 import Backtop from 'element-ui/lib/upload.js';
最終發現在引入 “form-item.js”組件時問題出現,其它組件則沒有問題。
於是深入form-item代碼內部繼續排查,同時聯想之前看過的文章,確定了衝突的依賴“async-validator”。
/***/ 49: /***/ (function(module, exports) { module.exports = require("async-validator"); /***/ }),
從elementUI看到依賴版本為1.8.1
"dependencies": { "async-validator": "~1.8.1", //省略 }
在項目中將其指定到1.11即可,至此問題解決。可以愉快地完整引用elementui了。
// 項目package.json "dependencies": { "async-validator": "^1.11.5"", }
總結
排除法找到有問題的依賴為"async-validator",通過指定為高版本即可解決問題。但之前的報錯信息跟問題原因看起來簡直毫無關係,不得不提醒大家註意保持平常心,這非常重要。:)