资讯专栏INFORMATION COLUMN

NPM — JavaScript 的包管理器

ZweiZhao / 2903人阅读

摘要:是的默认模块管理器,一个命令行下的软件,用来安装和管理模块,同时也可以管理其他开放式的模块代码。的包管理器可以查看所有可使用的命令。发布记得在推之前先登录要不然会报错。最后需要把文件里面的删除掉要不然上传时会忽略掉打包的文件。

本文主要介绍npm的常用命令,以及如何发布一些常用的js模块化代码到npm上面方便日后的使用,和举例如何把一个vue组件打包发布到npm到最后下载到本地使用的过程。

npm(Node Package Manager)是node的默认模块管理器,一个命令行下的软件,用来安装和管理node模块,同时也可以管理其他开放式的js模块代码。npm有一个好处是除了下载需要的模块外还会帮我们解决依赖关系,同时下载所依赖的模块。

NPM —— JavaScript 的包管理器 npm help
    access, adduser, bin, bugs, c, cache, completion, config,
    ddp, dedupe, deprecate, dist-tag, docs, doctor, edit,
    explore, get, help, help-search, i, init, install,
    install-test, it, link, list, ln, login, logout, ls,
    outdated, owner, pack, ping, prefix, prune, publish, rb,
    rebuild, repo, restart, root, run, run-script, s, se,
    search, set, shrinkwrap, star, stars, start, stop, t, team,
    test, tst, un, uninstall, unpublish, unstar, up, update, v,
    version, view, whoami

npm help 可以查看所有可使用的命令。

npm常用指令
npm install 名字      //该命令用于安装模块
npm uninstall 名字    //该命令用于卸载模块
npm run 名字          //该命令用于执行脚本
如何用npm发布自己的模块

我们所有下载以及发布的包是存放在这个地址:https://www.npmjs.com/
我们发布一个东西,得要有自己的标识吧,所以得先注册账号。

1.注册用户
npm adduser
运行该命令后会需要你依次输入
Username:
Password:
Email:
2.检查

接下来是需要检查一下有没有注册成功

npm whoami
3.建立package
npm init
//一路回车
name: (dateFormat) datechange
version: (1.0.0) 
description: change date format
entry point: (index.js) 
test command: 
git repository: https://github.com/shuangmuyingzi/dateFormat.git
keywords: dateformat date datechange
author: lingzi
license: (ISC) 
About to write to /Users/linziying/Downloads/npm/dateFormat/package.json:

{
  "name": "datechange",
  "version": "1.0.0",
  "description": "change date format",
  "main": "index.js",
  "scripts": {
    "test": "echo "Error: no test specified" && exit 1"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/shuangmuyingzi/dateFormat.git"
  },
  "keywords": [
    "dateformat",
    "date",
    "datechange"
  ],
  "author": "lingzi",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/shuangmuyingzi/dateFormat/issues"
  },
  "homepage": "https://github.com/shuangmuyingzi/dateFormat#readme"
}


Is this ok? (yes) 

然后会在该目录下多了个package.json文件

添加简单的日期转换格式插件

每次后台数据接口返回的基本是时间戳,往往需要转换成常用的日期格式。那我就以一个简单的日期转换格式小插件为例。把下面代码放到package.json文件同级目录里。

date.js

(function(global) {
    var datechange = (function() {
      
      return function (date) {
  
        date = date || new Date;
  
        if(!(date instanceof Date)) {
          date = new Date(date);
        }
  
        if (isNaN(date)) {
          throw TypeError("Invalid date");
        }
        let re = date.getFullYear() + "." + (date.getMonth()+1) + "." + date.getDate();
        return re
  
      }
  })()

  if (typeof define === "function" && define.amd) {
    define(function () {
      return datechange;
    });
  } else if (typeof exports === "object") {
    module.exports = datechange;
  } else {
    global.datechange = datechange;
  }

})(this);
4.发布

npm publish
记得在推之前先登录npm要不然会报错。如果是再次推送同一个项目记得修改版本号。

使用
npm install --save-dev datechange
var datechange = require("datechange");
var now = new Date();
var timeStamp = datechange(now);

OR


    

先安装后使用,包的名称为package.json里的name属性。
具体代码看github:
https://github.com/shuangmuyi...

Vue组件如何上传到NPM 方式一

用webpack把项目打包成JS文件,然后在package.json的 main导出该JS文件。

创建

vue-cli创建vue简单项目

vue init webpack-simple load-ling-zi

修改package.json

修改"private": false

npm默认创建的项目是私有的,如果要发布至npm必须将其公开

添加"main": "dist/build.js"

通过`import loading from "load-ling-zi"`引用该组件时,项目会自动找到`node_modules/load-ling-zi/dist/build.js`

在src加入组件代码App.vue, 并创建我们的导出文件index.js。
在index.js中添加:

import load from "./App.vue"
export default load
//global 情况下 自动安装
if (typeof window !== "undefined" && window.Vue) {
  window.Vue.component("load", load);
}

因为最后我们是打包成一个js文件,所以需要修改一下配置文件webpack.config.js

因为不是所有使用你组件的人都是通过npm按住和impor的很多人是通过 方式二

在main里直接导出Vue组件(.vue文件)
具体代码看这里:
https://github.com/shuangmuyi...

写在最后

关于vue组件、插件的实现方式估计还有很多的办法,本文权当抛砖引玉,水平有限,举的例子也是比较简单,一个好的组件也要考虑更多的可配置性以及通用性,数据的可配置,结构的可配置,样式的可配置等等,es里面模块化的写法也是很多,还有一些直接在

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/90060.html

相关文章

  • 煦涵说Yarn

    摘要:是一个新的包管理器,它由开发者共同开发完成。从包管理器中借鉴,创建了文件,用来记录项目使用每个包的确切版本。感谢您的阅读作者煦涵年月日下面是实验室的微信公众号二维码,欢迎长按扫描关注 Yarn是一个新的Javascript包管理器,它由Facebook, Google, Exponent and Tilde开发者共同开发完成。Yarn 不是 NPM 的fork版本,而是它的重新设计,Y...

    pkhope 评论0 收藏0
  • yarn-新生代NPM

    摘要:仅仅一夜,却也是无数个日夜,开源了这个新的包管理工具,这个和以及合作完成的项目。有两种安装模式,一种是下载脚本执行,一种下载压缩包解压。。。这货以后有取代的倾向。。。 yarn 仅仅一夜,却也是无数个日夜,FaceBook 开源了 yarn 这个新的 JavaScript 包管理工具, 这个和 Exponent, Google, 以及 Tilde 合作完成的项目。 官网 | Githu...

    Tony_Zby 评论0 收藏0
  • [译]Yarn:一个新的JavaScript管理

    摘要:第一个主要的包管理器在被引用后不久就搭建起来了,并且迅速成为世界上最受欢迎的包管理器之一。简介是一款新的包管理器,在取代客户端和其他包管理器现有工作流的同时,又保留了对代理的兼容性。 在JavaScript社区,工程师们分享了成百上千的代码段,我们不用自己从头编写基础组件、类库或者框架。反过来,每段代码又或许依赖于其它的代码段,而这些依赖就是通过 package managers(包管...

    Steve_Wang_ 评论0 收藏0
  • node入门基础

    摘要:入门是一门基于的后台编程语言,由于其解析引擎为引擎,性能比较强大,再加上与前端语言关系更为密切的先天优势,使其在众多后台编程语言中脱颖而出。那么线程呢,线程,有时被称为轻量级进程,,是程序执行流的最小单元。 node入门 nodejs是一门基于JavaScript的后台编程语言,由于其解析引擎为V8引擎,性能比较强大,再加上与前端语言关系更为密切的先天优势,使其在众多后台编程语言中脱颖...

    wujl596 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<