seo技术 快速网站排名,重庆建设工程造价管理协会网站,交通运输部: 优化交通运输领域防控,服装企业网站策划书一、 调试简单的脚手架方式 假定脚手架名称是 xxx
1 #xff09;方式1
在xxx脚手架项目目录的上一级#xff0c;执行 npm i -g xxx这时候#xff0c;就可以本地调试脚手架#xff0c;在前文中已经说明软链的作用参考#xff1a;https://blog.csdn.net/Tyro_java/article…一、 调试简单的脚手架方式 假定脚手架名称是 xxx
1 方式1
在xxx脚手架项目目录的上一级执行 npm i -g xxx这时候就可以本地调试脚手架在前文中已经说明软链的作用参考https://blog.csdn.net/Tyro_java/article/details/136102674这种方式可以用到已经发版上线的脚手架项目中
2 方式2
在未发过版的脚手架项目的根目录中也就是 xxx/ 下执行 $ npm link 也可以调试本地脚手架这时候在当前命令的日志输出中就会出现两个软链 将当前使用的node目录下的 bin/xxx - 当前node所使用的node_modules中的 xxx/bin/index.js 注意这个要确保package.json 中配置的 bin 属性是 bin/index.js 再将当前node所使用的node_modules中的 xxx - 当前脚手架的项目目录 xxx注意 - 表示软链的意思 通过以上两次软链就可以直接调试当前脚手架项目做到随时修改随时使用
二、调试含有分包的脚手架项目 假设有两个平行的项目 x1 和 x2在x1中需要引入x2包 x1的目录结构 x1
├── package.json
├── bin└── index.js在package.json 中的 main 属性配置为 bin/index.js x2的目录结构 x2
├── package.json
├── lib└── index.js在这里的 lib/index.js中有一个方法module.exports {sum (a, b) {return a b}
}在 package.json 中的配置 version 配置为 1.0.0main 配置为 lib/index.js (注意这个是x1引用x2的关键) 如果想要在 x1 中自动连接 x2尝试 在x1目录的上一级目录执行 $ npm link x2这种方式显然是失败的因为 x2 包还没有发布到 npm 上面 再次尝试首先在 x2 中执行 $ npm link 让这个包在全局的 node_modules 目录中创建一个软链到当前开发项目 x2 的目录上这时候全局环境下的 node_modules 下就可以找到 x2 了再次回到 x1 根目录 x1/ 下执行 $ npm link x2 到这个时候环境基本已准备好了可以在x1中正常引入x2了在x1中的 package.json 中 {dependencies: {x2: ^1.0.0}
}回到 x1 中进入 bin/index.js 编写 #!/usr/bin/env nodeconst lib require(x2);
const { sum } lib;
const result sum(1 2)console.log(result: , result)验证在 x1/ 下执行 $ node bin/index.js 输出 result: 3 或者执行 $ x1 来验证 使用这种方式基于 x1 来调试 x2调试完成 x2 就可以准备上线了 上线完成后x1 就可以重新下载 x2 作为依赖了但是这个时候可能会出现一些问题 如果直接在 x1/ 下执行 $ npm i 这时候下载的 x2 会被下载到 全局 node_modules 目录下而项目本地的node_modules 没有写的权限因为之前存在 link 的行为而 link 后会在全局 node_modules 下创建软链这时候需要执行 $ npm unlink x2 注意这里如果失败的话尝试: 先执行一次 link x2, 之后再重新 unlink x2 $ npm remove -g x2$ npm i x2 -S 注意以上的方式不修改项目源码而是修改本地环境不会因为后期忘记修改回来或误操作引发bug 修改源码的方式 之前会用 npm 安装本地包之后 dependencies 中出现 bar: file:foo/bar 这类的形式这种会导致后期上线非常的不方便而且不注意就会引发问题 这种不修改源码(包括package中的配置)而修改本地环境的方式可以作为一种最佳实践方式