前言:組件庫提供的組件樣式,用到實際的項目中或多或少都是要修改的,所以嘗試直接改組件庫的源碼用到項目中去
一、獲取源碼
1、git clone到本地(github地址 https://github.com/iview/iview)
2、修改package.json的name為iview-text1
3、cnpm install
4、npm publish
5、問題報錯處理:
(1)沒有先npm install就npm publish報錯:
(2)報錯400是因為我本地連接的是私服,所以需要用nrm切換到npm服務:
6、再次提交npm publish,就顯示成功啦:
二、在測試的項目中安裝使用(具體創建新項目可以參照 使用vue-cli搭建vue項目 )
1、npm地址:https://www.npmjs.com/package/iview-test1
2、npm i iview-test1
3、 在main.js引入:
import iViewTest1 from 'iview-test1'; import 'iview-test1/dist/styles/iview.css'; Vue.use(iViewTest1);
4、在App.vue頁面上測試引入iview的組件成功:
三、運行iview的examples
1、直接運行npm run dev報錯
$ npm run dev > iview-test1@3.5.4 dev F:\20 TDComponents\test\iview源碼\iview > webpack-dev-server --content-base test/ --open --inline --hot --compress --history-api-fallback --port 8081 --config build/webpack.dev.config.js events.js:174 throw er; // Unhandled 'error' event ^ Error: listen EADDRINUSE: address already in use 127.0.0.1:8081 at Server.setupListenHandle [as _listen2] (net.js:1270:14) at listenInCluster (net.js:1318:12) at GetAddrInfoReqWrap.doListen [as callback] (net.js:1451:7) at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:61:10) Emitted 'error' event at: at emitErrorNT (net.js:1297:8) at process._tickCallback (internal/process/next_tick.js:63:19) npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! iview-test1@3.5.4 dev: `webpack-dev-server --content-base test/ --open --inline --hot --compress --history-api-fallback --port 8081 --config build/webpack.dev.config.js` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the iview-test1@3.5.4 dev script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! D:\nodejs\node_cache\_logs\2020-05-07T03_03_39_163Z-debug.log
我們找到報錯提示的地方:iview-test1@3.5.4 dev: `webpack-dev-server --content-base test/ --open --inline --hot --compress --history-api-fallback --port 8081 --config build/webpack.dev.config.js`
3、重新npm run dev成功查看組件案例:
四、修改iview組件
1、本地修改組件,可以看到直接在頁面上顯示修改后的效果:
2、打包
剛開始執行npm run build報錯了,再看了下package.json,嘗試着執行npm run dish打包,是成功的。
3、上傳
我們把iview-test1改為2(因為同一個包名在24小時內不可重復操作上傳),再次上傳npm:
在npm上面看到上傳成功后的包:https://www.npmjs.com/package/iview-test2
4、測試查看效果
上傳成功后再次回到測試的項目中安裝測試是否修改成功,結果如下圖,說明修改、打包都成功啦!
解決了上面的問題,知道怎么操作整個流程了 ~ 接下來就可以修改其他組件滿足項目中的需求啦 :)