之前看到一个新闻,有一个家伙将某个电视剧上传到了 npmjs 仓库中,由于 npmjs 有一些 cdn 支持,直接将薅别人的羊毛,真的是太不讲武德了,哈哈哈。
npmjs 是一个 js 项目仓库分发共享平台,允许全世界的 nodejs 爱好者将创建的项目推送到仓库中,类似 java 项目的 Maven 中央仓库。
那么我们如何将我们的静态资源上传上去呢?其实比较简单,也就分 3 步:
这个应该没啥难度啊,不细讲了,直接自己注册即可。
创建项目也比较简单,你本地安装好 nodejs, npm 直接找个目录初始化一个 nodejs 项目即可。
mkdir npm-pub-test
cd npm-pub-test
npm init -y
touch index.js
会创建一个默认的 package.json 里面自动填充了一些字段,比如 name, version
默认创建的项目 name 会根据 当前所在的目录进行命名,这个名称是可以更改的,在推送到 npmjs 时这个名称有一些要求,我们首先要知道一下 npmjs 的 scope 的概念。
官网解释:https://docs.npmjs.com/about-scopes
默认的免费账号是不支持私有 仓库 的, 必须是 public 的,public 也分为 unscoped 和 scoped, 这两个怎么理解呢?其实可以理解为 *全局仓库* 和 *带@用户名前缀的仓库* 两种
npm i element-ui -S
npm i @antv/g6 -S
unscoped 要求全局唯一性,考验你取名的能力了,建议咱们普通用户可以使用 scoped 不用操心重名问题。
在 npm init
的时候是可以直接指定 --scope
的
npm init --scope=@chinaxiang -y
给 index.js 塞点内容
vim index.js
exports.printMsg = function() {
console.log("This is a message from the demo package");
}
这里的登录指命令行登录,要先把之前配置的 registry mirror 去掉,保留默认的 registry=https://registry.npmjs.org/
执行 npm login
,会让你输入 username, password, email 还有 one-time password.
one-time password 是邮箱接收到的一串数字。
登录成功的提示
查看当前登录用户
然后执行 publish 指令,默认 publish 指令是发布为 私有 项目的,当然我们免费用户是没有权限的,需要加一个额外的参数 --access=public
npm publish --access=public
下面是发布成功的记录
上传到 npmjs 中的资源会拥有 CDN 的加持,如下是两个不错的站点
例如我发布上去的 js 就可以通过下面的地址直接访问
另外,由于 npmjs 没法存放私有包,阿里云提供的云效是个不错的选择,作为个人或小团队的私有包保管平台不要太爽
本次的分享到此结束,希望对你有所帮助。
如果你对我分享的内容感兴趣,欢迎扫码关注公众号:新质程序猿,并设置星标,推送更实时哟!