猿问
下载APP

请问我该如何发布自己模块到NPM?

如何发布自己模块到NPM


开满天机
浏览 65回答 5
5回答

慕容森

需要声明打出去的包按什么规范走就是了,如下:output:{path:"./",library: 'xxxx',libraryTarget: 'umd',filename:'dist/bundle.js'}这儿就是用libraryTarget来声明的

慕前端131612

安装node和npm安装node(注意:需要Python 2.6或2.7已经安装)$ wget http://nodejs.org/dist/v0.10.26/node-v0.10.26.tar.gz$ tar -zxvf node-v0.10.26.tar.gz$ make && make install成功安装node之后,npm(node package manager)已经包含在内了,不需要独立安装,可以执行一下npm检查是否安装好。$ npmUsage: npm <command>创建repository接下来我们需要创建module所需的repository,默认你拥有一个github账号(如果没有自行解决),这个repository用来托管我们module的代码,并方便用户报告bug,最重要的是可以让其他开发者向module贡献代码,这也是乐趣所在。初始化package.json接下来我们创建package.json文件,这个文件包含了module的所有信息,比如名称、版本、描述、依赖、作者、license等。笔者以自己的easy_mongo(注意:npm要求项目的名称必须为小写字母)项目为例,看如何创建package.json。首先创建我们module的目录$ mkdir easy_mongo && cd easy_mongo之后执行npm init,系统会提示你输入所需的信息,不想输入的直接输入Enter可以跳过。$ npm initThis utility will walk you through creating a package.json file.It only covers the most common items, and tries to guess sane defaults.See `npm help json` for definitive documentation on these fieldsand exactly what they do.Use `npm install <pkg> --save` afterwards to install a package andsave it as a dependency in the package.json file.Press ^C at any time to quit.name: (node) easy_mongoversion: (0.0.0) 0.1.0description: An easy mongodb client for node.js based on native mongodb driver.entry point: (index.js)test command: make testgit repository: https://github.com/JeremyWei/easy_mongo.gitkeywords: Mongodb node easyauthor: JeremyWeilicense: (BSD-2-Clause) MIT输入完成之后,系统会要你确认文件的内容是否有误,如果没有问题直接输入yes,那么package.json就创建好了。About to write to /Users/weizhifeng/dev/node/package.json:{"name": "easy_mongo","version": "0.1.0","description": "An easy mongodb client for node.js based on native mongodb driver.","main": "index.js","directories": {"example": "examples"},"scripts": {"test": "make test"},"repository": {"type": "git","url": "https://github.com/JeremyWei/easy_mongo.git"},"keywords": ["Mongodb","node","easy"],"author": "JeremyWei","license": "MIT","bugs": {"url": "https://github.com/JeremyWei/easy_mongo/issues"}}Is this ok? (yes)npm init创建的package.json文件只包含了基本的信息,我们还需要加入对其他module的依赖关系:"dependencies": {"mocha" : "1.18.2","should" : "3.3.0","mongodb" : "1.3.19"}项目结构package.json文件只是第一步,要完成一个module,我们还需要许多其他文件,整体的文件夹结构如下:easy_mongo├─┬ lib│ └── easy_mongo.js├─┬ test│ └── all.js├── .gitignore├── .npmignore├── .travis.yml├── index.js├── LICENSE├── makefile├── package.json├── README.md这些文件的作用是:lib目录下存放业务逻辑文件test目录下存放单元测试用例.npmignore记录哪些文件不需要被发布到npmjs.org.travis.yml是持续集成服务travis的描述文件index.js是入口文件makefile方便我们用make test进行测试README.md是此module的描述和使用方法持续集成开源项目多如牛毛,从中找出靠谱的项目需要花费一定的精力,开发者都会对持续更新,并且经过测试(很多公司采用)的项目更加的信赖,对于刚上线并且用户数量很少的项目开发者都会有个疑虑:这项目靠谱吗?所以你需要对自己的项目打上一个标识:老子的项目靠谱。如何做?持续集成。目前Github已经整合了持续集成服务travis,我们只需要在项目中添加.travis.yml文件,在下一次push之后,travis就会定时执行npm test来测试你的项目,并且会在测试失败的时候通知到你,你也可以把项目当前的状态显示在README.md中,让人一目了然,比如:.travis.yml是一个YAML文件,关于node.js相关的配置见这里,例子如下:language: node_jsnode_js:&nbsp; - "0.10"&nbsp; - "0.8"&nbsp; - "0.6"services:- mongodb这个例子的是让travis在node.js的0.6.x,0.8.x,0.10.x三个版本下对项目进行测试,并且需要mongodb的服务。发布完成了上面的步骤之后,我们接下来要在www.npmjs.org注册一个账号,这个账号会被添加到npm本地的配置中,用来发布module用。$ npm adduserUsername: your namePassword: your passwordEmail: yourmail@gmail.com如果出现以下错误,可能是你的npm版本太低,通过sudo npm install -g npm升级一下。npm WARN adduser Incorrect username or passwordnpm WARN adduser You can reset your account by visiting:npm WARN addusernpm WARN adduser &nbsp; &nbsp; http://admin.npmjs.org/resetnpm WARN addusernpm ERR! Error: forbidden may not mix password_sha and pbkdf2npm ERR! You may need to upgrade your version of npm:npm ERR! &nbsp; npm install npm -gnpm ERR! Note that this may need to be run as root/admin (sudo, etc.)成功之后,npm会把认证信息存储在~/.npmrc中,并且可以通过以下命令查看npm当前使用的用户:$ npm whoami以上完成之后,我们终于可以发布自己的module了:$ npm publish --tag 0.1.0npm http PUT https://registry.npmjs.org/easy_mongonpm http 201 https://registry.npmjs.org/easy_mongo+ easy_mongo@0.1.0npm社区版本号规则采用的是semver(语义化版本),主要规则如下:版本格式:主版号.次版号.修订号,版号递增规则如下:主版号:当你做了不相容的 API 修改,次版号:当你做了向下相容的功能性新增,修订号:当你做了向下相容的问题修正。先行版号及版本编译资讯可以加到「主版号.次版号.修订号」的后面,作为延伸。至此,我们已经成功把module发布到了npmjs.org,是不是很简单,快动手把自己的module也贡献出来吧。

蝴蝶刀刀

页面内容是有js/ajax动态生成的,用普通的请求页面->解析的方法就不管用了,需要借助一个类似firefox、chrome浏览器的js引擎来对页面的js代码做动态解析。此种情况下,推荐考虑casperJS+phantomjs或slimerJS+phantomjs ,当然诸如selenium之类的也可以考虑。

繁星点点滴滴

首先安装nodejs猛击 INSTALL即可下载到node的安装包!安装完成后进入CMD,分别输入node和npm验证是否安装完毕!OK安装工作一切就绪,下面我们来开始写一个简单的模块!在任意你喜欢的地方建立一个工作目录!我建立在e:\js目录下。新建一个js文件,命名为a.js ,输入如下代码function hello(name){console.log("hello"+ name);}exports.hello=hello;超级简单!只有一个一个hello函数!注意:exports.hello=hello;这句是关键!使用exports将你的hello函数暴漏出去!不懂的可以百度CommonJs规范!

幕布斯6054654

首先创建module的目录$ mkdir easy_mongo && cd easy_mongo之后执行npm init,系统会提示你输入所需的信息,不想输入的直接输入Enter可以跳过。$ npm initThis utility will walk you through creating a package.json file.It only covers the most common items, and tries to guess sane defaults.See `npm help json` for definitive documentation on these fieldsand exactly what they do.
打开App,查看更多内容
随时随地看视频慕课网APP
我要回答