Arm*_*man 13 node.js npm package.json npmignore
我的目标是在发布之前指定我的节点模块中包含哪些文件,并能够在本地测试安装.使用package.json中的"files",如果我发布我的包并安装它,那么我只得到"files"中指定的内容.
当我使用npm链接时不是这种情况.无论是package.json中的"文件"还是.npmignore,npm链接似乎总能给我每个文件.如何在本地测试我的模块安装?
例如:
cd ~/projects/node-redis # go into the package directory
npm link # creates global link
cd ~/projects/node-bloggy # go into some other package directory.
npm link redis # link-install the package
Run Code Online (Sandbox Code Playgroud)
如果〜/ projects/node-redis在其package.json中有"files:[lib]",那么在运行"npm link redis"之后,你会希望只有lib出现在〜/ projects/node-bloggy中,但这不是案子.
旁白:我喜欢node和npm,但是如果你看看你的节点模块中有什么,那么自述文件中使用的PNG就会有很多无关的文件.因此,模块非常庞大.
npm installGIT存储库URL您可能要从GIT存储库中安装软件包,例如
npm install https://github.com/AndreasPizsa/parse-decimal-number.git
Run Code Online (Sandbox Code Playgroud)
即使包尚未发布到npm存储库,这也是npm install尊重files条目的实际情况。
npm link 不复制,它创建一个链接npm link也不会通过复制到目标文件夹实际安装软件包。
相反,它创建了指向源文件夹的符号链接,这就是为什么您看到源文件夹中所有文件的原因(“ node-redis”),而不仅仅是看到的files。
在文档中npm link记录了此行为:
首先,程序包文件夹中的npm链接将在全局文件夹{prefix} / lib / node_modules /中创建一个符号链接,该符号链接链接到执行npm link命令的程序包。(有关前缀的值,请参见npm-config)。它还会将软件包中的所有垃圾箱链接到{prefix} / bin / {name}。
接下来,在其他位置,npm link package-name将创建从全局安装的package-name到当前文件夹的node_modules /的符号链接。
“什么是符号链接?” 您可能会问:
符号链接(也称为符号链接或软链接)是任何包含绝对或相对路径形式的对另一个文件或目录的引用并影响路径名解析的文件的术语。
如果您担心的是硬盘空间的使用,请放心-不会复制或复制任何内容,仅链接(就像链接到Wikipedia不会重复一样,实际上可以节省空间)
npm install本地运行也是如此npm install指向软件包的路径也会创建指向该软件包的符号链接。一个有用的方案可能是仍在开发中的模块。
cd ~/projects/node-bloggy
npm install ~/projects/node-redis
Run Code Online (Sandbox Code Playgroud)
这将node_modules在您的node-bloggy项目下创建一个符号链接。
| 归档时间: |
|
| 查看次数: |
520 次 |
| 最近记录: |