【问题标题】:How to prevent npm from installing demo/sample/example/test code for a package?如何防止 npm 为软件包安装 demo/sample/example/test 代码?
【发布时间】:2021-10-30 14:19:08
【问题描述】:

有没有办法让 npm 不安装包的某些元素?喜欢测试或示例/演示代码?

例如,在我的 test-api 项目中,我正在使用的一个包有一个名为 jmespath 的依赖项:

user@hostname MINGW64 ~/Projects/test-api/node_modules/jmespath (develop) 
$ ll 
total 109 
drwxr-xr-x 1 user group     0 May 15 00:16 ./ 
drwxr-xr-x 1 user group     0 May 15 00:17 ../
-rw-r--r-- 1 user group   126 Apr 25  2014 .eslintrc
-rw-r--r-- 1 user group    13 Apr 10  2014 .npmignore
-rw-r--r-- 1 user group    71 Jul 22  2015 .travis.yml 
drwxr-xr-x 1 user group     0 May 15 00:16 artifacts/
-rw-r--r-- 1 user group   932 Feb 29  2016 BASELINE
-rw-r--r-- 1 user group   443 Jul 22  2015 bower.json
-rwxr-xr-x 1 user group   270 Feb 15  2016 g.sh*
-rw-r--r-- 1 user group   855 Mar 25  2016 Gruntfile.js
-rw-r--r-- 1 user group  3130 Apr 25  2014 index.html
-rw-r--r-- 1 user group   105 Apr 28  2014 james.html
-rw-r--r-- 1 user group 58310 Mar 25  2016 jmespath.js
-rwxr-xr-x 1 user group   535 Feb 13  2016 jp.js*
-rw-r--r-- 1 user group  4645 Feb 29  2016 l.js
-rw-r--r-- 1 user group   559 Jul 22  2015 LICENSE
-rw-r--r-- 1 user group  1802 May 15 00:16 package.json
-rw-r--r-- 1 user group  1229 Mar 25  2016 perf.js
-rw-r--r-- 1 user group  2011 Jul 22  2015 README.md
-rw-r--r-- 1 user group   151 Feb 13  2016 reservedWords.json 
drwxr-xr-x 1 user group     0 May 15 00:16 test/

这里的 index.html 是一个演示应用程序,测试目录包含测试。如果我不希望这些在 node_modules 目录中,有没有办法在 npm install 期间排除它们?

【问题讨论】:

  • 不,你基本上得到了 git 存储库。当您稍后编译您的项目时,这些文件将不会被包含在内,我猜在这种情况下,只有jmespath.js 会在您的项目中使用。
  • 简短的回答是“否”。但是,如果您确定您的项目不需要这些文件才能成功运行,并且您的主要问题是您不希望它们在有人安装您的包后出现。考虑在您的 test-api 项目的 package.json 文件中添加 postinstall 脚本,以使用例如删除文件rimraf。例如:"postinstall": "rimraf node_modules/some-folder/*"。当然,当有人安装你的项目时,这些文件仍然会被安装,但它们会在完成后被删除。
  • 感谢 RobC 的详细解释。带有 rifraf 的安装后脚本听起来是个不错的选择,我会研究一下

标签: node.js npm npm-install


【解决方案1】:

不,依赖包的整个 git 存储库已下载,然后包的依赖项也从它们的 package.json 安装,所有这些信息都存储在你的 package-lock.json 中。

【讨论】:

    猜你喜欢
    • 2018-12-29
    • 1970-01-01
    • 2016-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    相关资源
    最近更新 更多