只需发布/ 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
。
自动化实例
您可以使用prepare
script自动化发布过程,结合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
)。