如何使用npm打包发布nodejs程序包

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用npm打包发布nodejs程序包相关的知识,希望对你有一定的参考价值。

参考技术A   一、注册自己的npm账户
  在 npm 官网申请一个账号,并且进行必要的验证,需要填写用户名、密码和邮箱。并且注册成功后会向邮箱发一封邮件,需要进行验证。

  二、添加用户名到npm环境中
  因为添加的是npm用户,所以需要指定registry为npm。这主要是区分本机已经安装了其它仓库例如cnpm的情况。

  根据提示输入用户名、密码、邮箱,其中密码不会显示的

  三、打包node项目
  发布的node项目需要有package.json,可以使用npm init命令,再根据提示输入相应的信息,最后完成打包即可。

nodejs npm 安装平台特定包

【中文标题】nodejs npm 安装平台特定包【英文标题】:nodejs npm install platform specific packages 【发布时间】:2016-10-27 13:07:40 【问题描述】:

我的 nodejs 应用程序在 Raspberry Pi 上运行并使用 SPI 接口。 SPI 在 Windows 上不可用。

我使用的 npm 包无法按预期安装在 Windows 上。 我想在 Windows 上开发并做一些测试,但 NPM 失败 加载这个模块需要太多的手动解决方法。

我想要什么时候能够安装 SPI 模块 NPM 安装在 Raspberry 上运行并安装一个存根模块来伪造一个 Windows 上的 SPI。

在伪代码中:文件 package.json

"dependencies-for-linux":  "pi-spi":  "~1.0.1",
"dependencies-for-win":  "pi-spi": "./some_local_file_to_fake_pi_spi_api"

另一种方法可能是在软件包失败时不中止安装。 替代的伪代码:文件 package.jon

"dependencies-that-do-not-fail-install" :  "pi-spi":  "~1.0.1"

my_module.js

 var pi_spi = null
    try
        pi_spi = require("pi-spi")
    
    catch (e) 
        pi_spi = require("fake-pi-spi")

任何一种解决方案都会很棒。 提前感谢您的帮助。

【问题讨论】:

您可以创建一个在postinstall 运行的节点脚本,您可以在其中检查platform 并以编程方式npm install(通过require('npm') 【参考方案1】:

您可以使用 Node.js 中的 OS 模块来获取当前的 os.arch(),它将返回“x64”、“arm”等...

您可以在 my_module.js 中使用它来查看需要哪个包。

https://nodejs.org/api/os.html

【讨论】:

如何使用 os.arch 来更改软件包的 npm 安装?我看到 os.arch 可以在 js 代码中需要一个替代包。但是安装失败的软件包会在我走到这一步之前弄乱安装。所以我认为我需要能够控制安装的内容。 在这种情况下,当您在 Windows 中运行 npm install 时,您可以指定 --only=dev 标志。然后,您可以将您的“dependencies-for-win”更改为 fake-pi-spi 的 devDependencies。在此处查看更多信息link 谢谢,这些点现在已连接。 optionalDependencies 允许 spi 在 windows 上失败,尝试在 require("pi-spi") 上捕获。

以上是关于如何使用npm打包发布nodejs程序包的主要内容,如果未能解决你的问题,请参考以下文章

如何使用NPM?CNPM又是什么?

AWS Beanstalk 在部署 Nodejs 应用程序时如何使用 NPM?

发布一个npm包

如何使用 npm pack 打包最新的更改?

如何使用ionic打包android的apk

nodejs npm 安装平台特定包