只需发布 /install /link 打算成为根目录的文件夹
根据 npm 方法,实现这一目标的自然方法是发布作为根的文件夹。有几种方法可以做到这一点,具体取决于您要使用的最终环境:
- npm publish <folder>从你的包 repo 到一个 npm 注册表,然后在你安装其他包时将你的包安装到其他项目中。在你的情况下,它会是
npm publish src/js/lib/my
.
- 如果您只想在本地使用您的包,请在其他项目中安装 npm install <folder> 。在您的情况下,您转到另一个项目并运行
npm install relative/path/to/src/js/lib/my
- npm 将您的文件夹本地链接到
node_modules
其他项目中,以防您希望原始包中的更改立即反映在其他项目中。在您的情况下,您首先cd src/js/lib/my
运行npm link
,然后转到另一个项目并运行npm link my
.
先决条件:在上述任何情况下,在发布/安装/链接之前,您必须在您的my
文件夹中至少放入一个适当的package.json
文件。在您的情况下,您必须将 package.json 文件中的包名称定义为"name": "my"
. 通常,您还需要一些其他文件,例如 README.md 或 LICENSE。
对方法 2 和 3 的备注
当您使用以这种方式安装的包时,通常会出现包依赖关系的问题。为避免这种情况,请先将包打包,npm pack dist
然后将包从打包的 tarball 中安装到目标项目中,即npm install path/to/package-tarball.tgz
.
自动化示例
prepare
您可以使用script自动化发布过程,结合build
脚本和"private": true
放在 package.json 中的字段,该 package.json 位于包 repo 的根目录中。这是一个将dist
文件夹作为包根目录的示例:
"private": true,
"scripts": {
"build": "rm -rf dist && webpack --mode=production && cat ./package.json | grep -v '\"private\":' > dist/package.json",
"prepare": "npm run build"
},
这样您就不会发布根文件夹 ( "private": true
)。当您点击npm publish dist
自动调用的prepare
脚本时,将触发 dist 文件夹清理 ( rm -rf dist
)、打包构建 ( webpack --mode=production
) 并将 package.json 复制到没有字段“private”的 dist 文件夹:true ( cat ./package.json | grep -v private > dist/package.json
)。