摘要:使用介绍是随同一起安装的包管理工具,能解决代码部署上的很多问题,常见的使用场景有以下几种允许用户从服务器下载别人编写的第三方包到本地使用。允许用户将自己编写的包或命令行程序上传到服务器供别人使用。
NPM 使用介绍
NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:
允许用户从NPM服务器下载别人编写的第三方包到本地使用。
允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
NPM 包构建 1. 创建demo目录,新建index.js文件index.js文件示例:
module.exports.sayHello = function(){ return "Hello World!"; }2.在项目中引导创建一个package.json文件
npm init
快速创建可以使用npm init -y命令
注册npm账号 1.要发布npm包当然需要在npm官网注册一个属于自己的账号npm官网地址: https://www.npmjs.com
2. 在cmd中登录账号注册成功后,打开cmd进入到demo目录,登录账号:
npm login
输入用户密码以及邮箱,登录成功后可以输入查询命令:
npm whoami
就能看到你酷酷的账号名了~~
附:刚注册完有段时间可以发布npm包,过段时间需要邮箱验证通过才能发布包,不然会报错(无伤大雅~~)
上传npm包 1. cmd进到demo目录,输入如下命令:npm publish
这时候npm报错大军要来了
npm ERR! publish Failed PUT 403 npm ERR! code E403 npm ERR! you do not have permission to publish "demo". Are you logged in as the correct user? : demo
这是什么原因??就是与npm仓库的包名重复了
改改改~~
拿出package.json文件,把name字段值改成下面:
"name": "testfun"
注意你的name字段值不要跟我一样,不然还会包上述错误,避免相同包名就可以啦
还有一点要注意的是npm对包名的限制:不能有大写字母/空格/下滑线
上传成功后你就可以在npm官网看到:
查看模块拥有者 $ npm owner ls2. 撤销发布包( 在项目目录下执行 )添加发布者 $ npm owner add 删除发布者 $ npm owner rm
npm unpublish --force
主要是处于安全性考虑,在Azer NPM 撤包事件后,npm公布了一版新的规则,如下:
版本更新少于24小时的包允许下架;
超过24小时的包的下架需要联系npm维护者;
如果有npm维护者参与,npm将检查是否有其他包依赖该包,如果有则不允下架;
如果某个包的所有版本都被移除,npm会上传一个空的占位包,以防后来的使用者不小心引用怀有恶意的替代者。
3. npm的版本控制npm version patch npm version minor npm version major
例如:我原本的项目是1.0.0版本的话
若是1中情况,变为1.0.1
若是2中情况,变为1.1.0
若是3中情况,变为2.0.0
不过也可以在package.json中的version更改~~
使用npm包 1. 创建test目录,在目录中新建index.js及package.json文件index.js文件代码:
var testfun = require("testfun"); console.log(testfun.sayHello());2. 安装testfun包
npm install --save-dev testfun3. 在项目目录中cmd输入
node index.js
就可以看到下面的效果啦~
这是运行在node环境,那么像运行在浏览器该怎么弄呢~~
这时候就要用到browserify了
Browserify 可以让你使用类似于 node 的 require() 的方式来组织浏览器端的 Javascript 代码,通过预编译让前端 Javascript 可以直接使用 Node NPM 安装的一些库。
2.Browserify是如何工作的Browserify从你给你的入口文件开始,寻找所有调用require()方法的地方, 然后沿着抽象语法树,通过 detective 模块来找到所有请求的模块.
每一个require()调用里都传入一个字符串作为参数,browserify把这个字符串解析成文件的路径然后递归的查找文件直到整个依赖树都被找到.
每个被require()的文件,它的名字都会被映射到内部的id,最后被整合到一个javascript文件中.
3. 运用到项目全局安装browserify
npm install -g browserify
使用browserify
browserify index.js > bundle.js
在test目录新建index.html:
打开index.html就可以看到控制器中的效果:
这样就用有自己的npm包了(^ω^)~~~
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/84428.html
摘要:第一个主要的包管理器在被引用后不久就搭建起来了,并且迅速成为世界上最受欢迎的包管理器之一。简介是一款新的包管理器,在取代客户端和其他包管理器现有工作流的同时,又保留了对代理的兼容性。 在JavaScript社区,工程师们分享了成百上千的代码段,我们不用自己从头编写基础组件、类库或者框架。反过来,每段代码又或许依赖于其它的代码段,而这些依赖就是通过 package managers(包管...
摘要:来源编程精解中文第三版翻译项目原文译者飞龙协议自豪地采用谷歌翻译编写易于删除,而不是易于扩展的代码。模块之间的关系称为依赖关系。用于连接模块的最广泛的方法称为模块。模块的主要概念是称为的函数。 来源:ApacheCN『JavaScript 编程精解 中文第三版』翻译项目原文:Modules 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 编写易于删除,而不是易于扩...
摘要:前言这是一篇关于如何使用构建高性能高可读性的现代化命令行工具的博客。对于命令行工具来说,运行时的权限是巨大的,但不要因此弄脏用户的系统。 前言 这是一篇关于如何使用 NodeJS 构建高性能、高可读性的现代化命令行工具的博客。 每当我们想要创建一个基于 NodeJS 的命令行工具时,就会衍生出一堆问题需要解决,比如如何准备开发环境,如何打包转译代码,如何使代码在转译后保持可调用的状态同...
摘要:初始项目设置我们将使用包管理器来处理依赖项。使用包管理器可以使您的项目依赖项保持最新状态,并能够获取和安装最新的包。是小型应用的最佳选择之一。 翻译:疯狂的技术宅英文标题:Creating a full-stack web application with Python, NPM, Webpack and React英文原文:https://codeburst.io/creating....
阅读 2484·2023-04-25 22:09
阅读 988·2021-11-17 17:01
阅读 1442·2021-09-04 16:45
阅读 2566·2021-08-03 14:02
阅读 755·2019-08-29 17:11
阅读 3232·2019-08-29 12:23
阅读 1062·2019-08-29 11:10
阅读 3255·2019-08-26 13:48