作用
通过软连接的方式无需发布即可在本地调试
使用
在包目录下运行以下命令,执行命令后,该项目会被链接到全局node_modules中
cd <package>
npm link
进入需要使用该包的开发目录运行一下命令,此处projectName为package.json中定义的name
npm link <packageName>
vue-cli项目中遇到以下问题:
1、No ESLint configuration found
vue-cli默认的eslint配置会忽略/node_modules/,但是npm link把实际项目目录暴露了出来,这个现象是因为webpack会把link的包路径解析成真实路径,所以不受ignore限制,导致这个目录不在排除范围内,所以报错找不到
方案1:修改vue.config.js,symlinks设置为false后,就被认为在node_modules下了,导致不会有hotreload的特性
module.exports = {
chainWebpack: config => config.resolve.symlinks(false)
}
方案2:在.eslintignore文件增加排除项,使eslint忽略该文件夹
**/packageName
2、Uncaught ReferenceError: exports is not defined
Webpack对从npm下载下来的文件进行预先编译,将其转成 ES6,而对于npm link引入的不是真实依赖包所以不会进行预先编译导致了报错
3、使用 yalc 替代 npm link
相当于在本地环境创建一个存储库,引入的时候也相当于是引入一个实际的依赖,也就不存在以上两个问题了。
安装:
yarn global add yalc
使用
- 进入包目录,将包发布到本地yalc存储库,类似npm publish的意思
cd <package>
yalc publish
- 在开发目录添加依赖
yalc add <packageName>
- 此时package.json依赖版本号显示为本地yalc路径
"packageName": "file:.yalc/packageName"