勇敢的嘗試,你會發現並沒有那麼難!
不知道爲啥對於未知的領域總是充滿排斥,怕去接觸,喜歡處在舒適區內;但是每次去接觸,發現結果並沒有那麼糟糕。
- 1.使用
yarn link
,yarn link npmName
,代碼重新build了,是可以直接刷新的,不需要其他額外的操作。 - 2.使用的
npm link
,項目A引入了組件B,項目A(有配置eslint)竟然會對組件進行eslint檢測,排除辦法先用.eslintigore
去除,暫時猜測是因爲把組件B當成普通文件了;如果引入的是.vue文件,A項目會用自己的解析器對這個組件進行解析,但是引用的配置文件卻是組件B裏面的。 - 3.使用本地link組件B,在A中import 導入的時候,會出現找不到文件的情況;因爲組件B已經build了,是es5的語法,而import是es6的語法,當然行不通。
node_modules
裏面的包之所以可以import導入是因爲會經過webpack編譯。而直接通過軟鏈接過來的組件B,判斷成真實路徑,不會經過webpack編譯;如果需要webpack編譯成es6要設置resolve.symlinks: false
,在webpack1.x
未生效,vue.config.js
實驗成功,rollup打包工具是都會編譯成es6的,無需額外設置。參考鏈接:記一次錯:Vue 構建項目後使用 npm link 失敗
- 4.組件內使用的圖片咋整?使用
url-loader
,不要使用file-loader
,url-loader
是生成base64,file-loader
是生成具體的文件,或者使用圖片外鏈。 - 5.如果因爲你起的包名與現有的包名太相近而被阻止發佈這個包,那麼找到一個獨一無二包名最簡單方法就是使用自己的作用域。你可以使用@+你的npm用戶名加在包名前面將包劃到你的npm賬戶作用域下,要改
package.json
裏面的name,這樣默認是私有的,需要使用npm publish —access=public
來創建公有的。