标签:npm index exports js 如何 发布 文件夹 first
1. 准备工作
-
安装node
-
去npm官网注册一个账号
2.本地创建一个项目包
-
创建一个文件夹,自定义名称,此处设为 cm-first-npm-demo
-
命令行进入文件夹下,输入
npm init -y
快速初始化项目,或输入npm init
并依次输入以下信息字段名 字段含义 package name 包名 version: (1.0.0) 包的版本,默认是1.0.0 description 包的描述信息 entry point 入口文件,默认是 index.js test command 测试命令,可直接回车忽略 git repository git仓库地址,可直接回车忽略 keywords 索引关键字,便于别人搜索到你的包 author 作者 license 许可信息,直接回车 填完之后,会有以下提示信息
About to write to xxx/package.json: { "name": "xxx", "version": "1.0.0", "description": "一个npm测试包", "main": "index.js", "scripts": { "test": "" }, "author": "", "license": "" } Is this OK? (yes)
直接回车,我们会看到文件夹下有个 package.json 文件,如果你想修改包的信息,可直接在此文件中修改保存。
-
创建一个 index.js 文件,写入一个加法函数作为测试函数,代码如下:
module.exports.add = function add (a, b) { return a + b }
3.发布包
-
以管理员身份运行命令行
-
修改npm仓库源,输入
npm config set registry https://www.npmjs.com/
注:包发布完成后切回淘宝源
npm config set registry http://www.npmjs.org
-
进入 cm-first-npm-demo 文件夹下,输入
npm login
填写用户名、密码、邮箱后完成登录
-
发布包
npm publish
-
登录npm官网查看包是否发布成功
4. 测试包
-
创建一个文件夹,自定义名称,此处设为 npm-test,作为引入发布包的测试项目
-
命令行进入文件夹下,快速初始化项目
npm init -y
-
安装我们所发布包
npm i cm-first-npm-demo -S
-
创建 index.js 文件,引入发布包,代码如下
const npmDemo = require('cm-first-npm-demo') console.log(npmDemo.add(33, 44))
-
修改 package.json 文件,在script中添加
"start": "node index.js"
,如"scripts": { "start": "node index.js" }
-
输入
npm start
,输出 77,包引入成功
5. 可能出现的问题
-
登录时:
解决方式:切换到管理员
解决方式:输入邮箱接收到的一次性验证码。
-
安装包时
解决方式:
(1)等个十几分钟,登录https://npmmirror.com/,查看自己的包是否已被同步。
(2)如果已同步,修改npm仓库源,再次安装
npm config set registry http://www.npmjs.org npm i cm-first-npm-demo -S
6. 有关包的导入
在上面的测试包中,我们使用 module.exports
进行导出,require
进行导入,那么使用 module.exports
或 exports
进行导出,能否使用 import
进行导入呢?
因为node使用的是CommonJs规范,不支持直接在js中使用 import
,故我们在测试项目 npm-test 下新建文件 index.mjs,并写入以下代码
import npmDemo from 'cm-first-npm-demo'
console.log(npmDemo.add(33, 44))
命令行进入文件夹下,输入
node index.mjs
输出如下
所以,对于发布的包,如果我们使用 module.exports
或 exports
进行导出,既能使用 require
,也能使用 import
进行导入。
标签:npm,index,exports,js,如何,发布,文件夹,first 来源: https://www.cnblogs.com/orangehome/p/15968924.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。