我究竟应该投入.npmignore什么?
测试?好像.travis.yml,.jshintrc?运行模块时不需要的任何东西(自述文件除外)?
我找不到任何关于此的指导.
npm 5介绍了package-lock.json,其中的文档就在这里.
它声明该文件旨在包含在版本控制中,因此任何克隆您的包并安装它的人都将具有相同的依赖版本.换句话说,您不应将其添加到.gitignore文件中.
它没有说明的是该文件是否包含在已发布的包中.这个问题可以改为:应该将package-lock.json包含在.npmignore中吗?
.npmignore和之间有什么区别.gitignore?我应该忽略哪些文件?
我的目标是在发布之前指定我的节点模块中包含哪些文件,并能够在本地测试安装.使用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的目录中只下载一个文件npm install.
该目录看起来像:
+- dist/
+- 1.0.0/
+- 1.0.1/
+- ...lots of other dirs...
+- file.js
Run Code Online (Sandbox Code Playgroud)
我希望npm忽略所有内容,但file.js我尝试在我的内容中包含以下内容.npmignore:
dist/
!dist/file.js
Run Code Online (Sandbox Code Playgroud)
然而,dist当我安装软件包时,npm仍然会下载所有目录.我认为这应该是有效的,.gitignore但显然我在这里遗漏了一些东西.
我知道我不能同时使用它们,但有没有办法使.npmignore文件扩展.gitignore?我有几十个规则.gitignore,我想全部使用它们+一个额外的npm包.如何在不重复所有规则的情况下完成这项工作?
假设我必须开发一个 npm 包my-package,它需要由my-project导入和使用。
在开发my-package 时,我需要从 npm 安装和使用其他包。在my-package开发结束时,我将所有相关文件捆绑在dist目录中。由于我不想将node_modules文件夹中的所有文件作为发布包的一部分,我在.gitignore(或.npmignore)中指定排除node_modules文件夹。所以my-package文件夹的最终结构看起来像
my-package
dist
... // all the code of the package to be distributed
node_modules
... // all the node modules
src
... // all source files
package.json
.gitignore
Run Code Online (Sandbox Code Playgroud)
现在我在 npm 存储库上发布my-package,然后使用命令将其导入my-projectnpm i my-package。
作为这种导入的结果,托管my-project的目录结构类似于
my-project
... // stuff
node_modules
my-package
dist
... // all …Run Code Online (Sandbox Code Playgroud) 我有一个用 TypeScript 编写的 NPM 包。我的构建过程采用所有 *.ts 文件并将它们捆绑到 myLib.d.ts、myLib.js 和 myLib.js.map 中。
我的 NPM 包必须包含所有 src/ .ts 文件和这三个 myLib。自动生成的文件。
但是在我的 git 存储库中,我应该提交这三个 myLib.* 自动生成的文件吗?
在npm包中发布不受版本控制的文件是否有问题?
我有一个要发布到 npm 的打字稿项目。我所有的 TS 源都在一个名为的文件夹中src,它们被编译到一个名为dist.src可能包含一些 html 模板,可能包含 css 文件和其他资产。作为构建的一部分,这些资产都被复制到 dist 文件夹中。
在 dist 文件夹中也生成了 source map 文件
发布时,我只想发布 dist 文件夹,但我希望 dist 文件夹中的源映射正常工作。
当我发布到 npm 时,我想包含整个dist文件夹但忽略文件夹中的所有非 ts 文件src。
我需要的原因 .ts文件是 dist 文件夹中的源映射指向这些源文件。调试时,我需要原始源代码才能在浏览器中看到它。
所以,我需要忽略srcEXCEPT 中的.ts文件src
根据我的研究,我已经尝试了以下方法,据我所知,这些方法应该有效。
# standard ignores
node_modules/
karma.conf.js
spec/
# ignore src
src/
# override above and include ts files
!src/**/*.ts
!src/**/*.d.ts
Run Code Online (Sandbox Code Playgroud)
当我使用这个文件打包时,我得到了包中的整个 src 文件夹,包括 html、css 和图像文件。
我不确定以上是否适用于直接在src文件夹下的 …
如何将包文件(要发布的文件)列入调试记录.npmignore?
我正在寻找类似的等价物git ls-files的.gitignore.
到目前为止我找到的唯一方法是打包,然后列出我觉得有点笨拙的档案:
npm pack
tar -tzf <package-id>.tgz
Run Code Online (Sandbox Code Playgroud) 当我发布到NPM时,我正在寻找一种忽略项目中所有.ts文件的好方法,我可以通过在.npmignore文件中添加以下内容来实现:
*.ts
Run Code Online (Sandbox Code Playgroud)
但是等等.d.ts......当我发布时,我想保留项目中的所有文件...
我可以添加到我的.npmignore文件中,该文件将保留所有.d.ts文件但忽略所有.ts文件?
我假设我必须使用某种形式的正则表达式来忽略所有以.ts结尾的.ts结尾的文件.
所以这个JS正则表达式可能如下所示:
*.\.[^d]\.ts
Run Code Online (Sandbox Code Playgroud)
上面的正则表达式应该意味着匹配任何以.ts结尾的.ts结尾的.ts
但是当然我们仍然坚持我认为操作系统等使用的强大的正则表达式.
npm ×11
npmignore ×11
gitignore ×5
node.js ×5
git ×3
npm-install ×2
package.json ×2
typescript ×1