只需发布/ install / link打算用作根目录的文件夹
根据npm方法,实现此目标的自然方法是发布将成为根目录的文件夹。有几种方法可以执行此操作,具体取决于您要使用的最终环境:
- npm发布<文件夹>软件包回购中的到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。
自动化实例
您可以使用preparescript自动化发布过程,结合build脚本和"private": true字段以及位于软件包存储库根目录中package.json中的字段。这是一个以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),程序包build(webpack --mode=production)以及将package.json的副本复制到dist文件夹中而没有字段“ private”:true(cat ./package.json | grep -v private > dist/package.json)。