npm run dev 提示assetsroot 找不到_还没有开始用自己的npm包吗,简单几步就搞定了...

f57cb7c9ce7629179d1149f2c2a4d1f0.png

准备工作

npm是一个辅助前端开发的包管理工具。主要设计到两个概念package和module,可以这样理解,一个JavaScript软件,从本地发布到npm仓库时是package,从npm仓库下载到本地时就变成了module。如果要发布自己的包到npm,我们需要注册npm账户。在npm上注册一个账号是很简单的,需要填一下用户名密码邮箱,然后会收到一封邮件,进邮箱验证邮件的真实性。否则发布会报错。

创建包

创建package.json文件

新建一个wave-test文件夹,在文件夹中执行npm init,按照提示一步一步继续就可以了,最后在文件夹生成一个package.json文件,如果该文件夹是一个git仓库,它会提示一步步填上对应的repository相关的地址,这个将来发布到npm上的时候会在相应的页面上显示。

{  "name": "wave-test",  "version": "0.0.1",  "description": "",  "main": "index.js",  "scripts": {    "test": "echo "Error: no test specified" && exit 1",  },  "keywords": [],  "author": "wavesnow",  "license": "MIT"}

创建一个入口文件index.js

我们按照默认的创建一个index.js文件,写一个测试方法getRandomNumber。

(function () {  'use strict';    function getRandomNumber() {        var random = Math.floor(Math.random() * 100);        if (random >= 100)            throw new Error("Error");        return random;    }    exports.getRandomNumber = getRandomNumber;  }());

创建README.md文件

这个文件将来也会将内容显示到发布的npm包所在的页面,用来帮助用户理解说明你发布的包。

发布包

不带命名空间的包

有了上面三个个文件,我们就可以发布npm包了。依次执行下面几个命令,登陆后还需要输入密码及发布用的邮箱,该邮箱会公开。

## 登陆npm login## 发布npm publish

带命名空间的包

如果想发布带命名空间的包,有scope的,那首先应该先去npm网站创建一个组织,这个组织的名字就是一个scope,以发布open的scope为例,后面需要修改一下这个package.json文件,比如申请的scope是myscope,那上面的package文件需要将名字这块做一个修改,其他可以不用动。

{  "name": "@myscope/wave-test",  "version": "0.0.1",  "description": "",  "main": "index.js",  "scripts": {    "test": "echo "Error: no test specified" && exit 1",  },  "keywords": [],  "author": "wavesnow",  "license": "MIT"}

这种包发布的时候,需要加入一个参数--access public,发布私有scope的,访问限制私有的包npm需要收费。

npm publish --access public

使用

和其他包使用是一样的。现有一个测试工程。创建一个test-mypackage文件夹,安装我们的包

mkdir test-mypackage && cd test-mypackage npm init -ynpm i wave-test

然后创建一个index.js文件,引入我们的包

let test = require('wave-test');test.getRandomNumber();

运行index.js,

node index.js

更新

一个npm包发布之后,我们难免会修改一些bug,或者增改一些功能,这就涉及到对npm包的迭代。其中会涉及到到两个方面,内容的变更和版本的变更。npm采用语义化版本,共三位,以’.’隔开,从左至右依次代表:主版本(major)、次要版本(minor)、补丁版本(patch)。

## 变更版本号的命令npm version 

比如我们执行命令:

npm version minor

package.json中的version变为0.1.1,然后执行发布命令就可以了。

项目中更新对这个包的引用,可以执行

npm up wave-test

废弃或删除

npm包发布后可以对包进行废弃或删除操作。废弃不会将包或版本从npm仓库删除,仍然可以继续下载安装,并在安装的时候会有警示。删除会将包从npm彻底删除,无法被下载安装。无论是废弃还是删除,都包含两个层面:

  • 版本的废弃/删除,鼓励用户更新最新版本
  • 包的废弃/删除,此包内容已经过时,没有了维护的价值

废弃

语法:npm deprecate [@] ,我们以wave-test为例:

## 废弃指定版本npm deprecate wave-test@0.0.1 'deprecate reason'## 废弃指定的包npm deprecate wave-test 'deprecate reason'

执行后我们用npm view wave-test versions查看版本,记录的版本号并无变化。废弃的包除了安装时会有警示,并不影响使用。

删除

npm不鼓励任何形式的删除,主要因为我们发布的包可能已经被其他人引用,如果我们删除了此包,其他人在重新安装含有我们包的依赖的工程时,出现找不到包问题。

## 任意目录下删除包npm unpublish wave-test --force## 开发目录下删除当前版本npm unpublish --force
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值