npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

co-win-x64

v3.0.2

Published

🥵 No need to remember which JavaScript package manager to use anymore!

Downloads

16

Readme

co

再也别想该用啥包管理器了!

co 是怎样诞生的

我是一个 JavaScript 开发者。在 JavaScript 社区中,有许多包管理器,例如 npmbunyarnpnpmcnpm 等等……

在不同的项目中,安装一个包之前,首先要回忆这个项目所使用的包管理器,然后再运行相应的命令。

由于肌肉记忆,我经常习惯性地在那些 yarnpnpmbun 项目中错误运行 npm i,这种感觉实在是太痛苦了……

为了解决这个问题,我编写了 co,你可以通过一套相同的命令,来自由地根据不同项目,执行不同的包管理器命令。

实现这样魔法的背后,是 co 的命令别名引擎,就像 npm 中,package.jsonscripts 一样,但是更加强大。

对于 deno 以及其他的语言来说,他们没有类似命令别名的支持,co 也能帮助他们获得一个更强大的命令别名引擎。

自动安装

co 本质是单个可执行二进制文件,你可以通过 npm 来快速安装和你系统与 CPU 类型相符的版本:

npm install --global 你的版本

如果你正在使用 Bun,也同样可以安装:

bun add --global 你的版本

可选的版本有:

[email protected]
[email protected]
[email protected]
[email protected]
[email protected]

手动安装

如果你没有 npm (对于 deno 或其他语言的用户来说),可以直接下载二进制文件,然后将其放到你的全局环境变量中。

例如,对于 Linux 用户,你可以通过以下命令来下载和安装 (假设使用 linux-x64 版本):

cd /tmp \
&& wget "https://cdn.npmmirror.com/packages/co-linux-x64/3.0.2/co-linux-x64-3.0.2.tgz" \
&& tar -xzf co-linux-x64-3.0.2.tgz \
&& mv /tmp/package/co /usr/bin/co \
&& chmod 777 /usr/bin/co

对于 Mac 用户,操作和 Linux 用户类似,只是略有不同,且下载的是 macos-x64 或 macos-arm64 版本。

如果你使用 Windows 的话,可以通过以下命令将 C:\ 设置到 PATH 中。这样的话,你将任何可执行文件,包括 co.exe 放到 C:\ 中,就可以直接在命令行中运行它们。注意:需要使用 PowerShell 运行,不要使用 CMD

你可能需要重启 PowerShell 或 Windows,才能使这些操作生效。

[environment]::SetEnvironmentvariable("PATH", "$([environment]::GetEnvironmentvariable("Path", "Machine"));C:\", "Machine");

卸载

如果你通过 npm 安装,可以通过以下命令卸载:

npm uninstall --global co-linux-x64
npm uninstall --global co-linux-arm64
npm uninstall --global co-macos-x64
npm uninstall --global co-macos-arm64
npm uninstall --global co-win-x64

初始化

在你的工程目录中,运行:

co

然后跟着提示操作即可!请选择你计划在这个工程中使用的包管理器。

最终,将会为你创建一个 .co.toml 文件。

命令

在上一步的初始化章节中,你选择了你计划在此项目中使用的包管理器,接着,你就可以自由使用下面这些命令了!

通常,我们启动项目的开发会运行 npm run dev,现在,你只需要使用 co dev

co dev

以及,你想要安装包 lodash,你可以这样做:

co install lodash
co add lodash
co i lodash
co a lodash

是的,以上每个命令都是等价的。他们只是同一个操作的不同别名,这是为了照顾不同包管理器习惯的使用者。

在背后,co 会根据你不久前为项目选择的包管理器预设,自动转化为你所使用的具体的包管理器的命令:

npm install --save lodash
yarn add lodash
pnpm add lodash
bun add lodash

对于常用的操作,co 也贴心地为你提供了统一的缩写,例如,将 eslint 安装到全局:

co install:global eslint
co add:global eslint
co i:g eslint
co a:g eslint

你可以通过阅读这一份别名列表,来了解 co 的预设为你提供了哪些别名。

更多

除了帮助您统一软件包管理器命令之外,bun 还可以帮助简化一些常见命令(例如 git)。这些是可选的,您可以根据自己的喜好将它们添加到您的项目中。

Git

在你的 .co.toml 中的 includes,添加 co:git 即可启用。

["general"]
includes = ["co:npm", "co:git"]

可用的命令参见 Git 别名列表

来自社区

命令以 co:开头的是内置命令。您还可以使用来自社区的命令,只需提供一个 http(s) 链接或相对路径 (./~/)。如果您提供了一个链接,我们会假设它是不会变化的。该命令将在首次运行时从网络下载并缓存在~/.co-temps 中,然后在每次运行时从缓存中运行,除非缓存文件被删除,否则不会再次重新下载。

如果你想写自己的 co 脚本,请阅读编写指南