勇敢的尝试,你会发现并没有那么难!
不知道为啥对于未知的领域总是充满排斥,怕去接触,喜欢处在舒适区内;但是每次去接触,发现结果并没有那么糟糕。
- 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
来创建公有的。