【问题标题】:Is there a way to test an in-development NPM package via NPX?有没有办法通过 NPX 测试开发中的 NPM 包?
【发布时间】:2021-07-06 16:14:00
【问题描述】:

我正在开发一个仅通过 npx * 使用的 NPM 包,类似 create-nuxt-app 的 la 包。

有没有办法用npx * 测试我的包?换句话说,在不安装包的情况下运行我的 bin 脚本。

我读过this discussion,这表明可能没有。我意识到我可以通过Yalc 之类的方式测试我的包的安装,而不仅仅是运行,但Yalc 仅提供yalc add *,它模拟@987654327 @,而不是 npx *

这里最好的方法是什么?

【问题讨论】:

  • 发布后 16 秒。那一定是某种 SO 记录。
  • 我实际上没有正确阅读您的问题。不知道通过npx进行测试,虽然你仍然可以使用npm link直接使用它
  • 是的,我读过那篇博文,用例确实是用于安装/导入包,而不仅仅是运行。 当然我不能成为第一个反对这个的人。他们将如何测试 create-nuxt-appcreate-react-app 之类的?
  • afaik,npxnpm installnpm run 做同样的事情。所以你可以直接测试js文件。当我创建一个简单的npx 脚本时,我手动测试了该应用程序,然后部署它
  • 但是npm run * 是用于运行在scripts 数组中定义的脚本,而不是bin 映射,不是吗?或者您是说在scripts 下定义bin 脚本用于测试目的?

标签: javascript node.js npm npx


【解决方案1】:

我的意思是你为什么不把你的代码发布到 npm。更改它的版本

{
“name”:”yowPackage”,
“version”:”0.0.1-dev”,
…
}

然后你可以测试你的包

$ npx yowPackage@0.0.1-dev arguments

然后一旦你的代码工作发布正式版本

{
“name”:”yowPackage”,
“version”:”1.0.0”,
…
}

$ npx yowPackage@1.0.0 arguments

点击此处了解更多信息

https://docs.npmjs.com/adding-dist-tags-to-packages

【讨论】:

  • 啊,我实际上并不知道 npm 支持的 dist 标签 - 感谢您将其标记出来。
【解决方案2】:

经过大量挖掘和讨论,npm init * 似乎与 npx * 相同如果包名称以 create- 开头。 (Source)。

所以:

npx create-nuxt-app

其实是一样的

npm init nuxt-app

如果您的包不是以create- 开头,这将不起作用。

如果包允许,您可以使用任何一种方法来传递参数。

这意味着您可以使用传统的 NPM 包测试机制,例如npm-link 或类似 Yalc 的东西,但通过 npm * 语法而不是 npx * 进行测试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-09
    • 1970-01-01
    • 2011-10-17
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    • 2013-10-29
    • 2015-10-29
    相关资源
    最近更新 更多