gpt4 book ai didi

node.js - 发布使用 Browserify 开发的 npm 包的正确 package.json 方式是什么?

转载 作者:搜寻专家 更新时间:2023-11-01 00:02:18 25 4
gpt4 key购买 nike

我正在发布一个使用 Browserify 开发的 npm 包,想知道构建 package.json 的正确方式是什么。

该包是node server-client app(其实就是atom包),客户端是基于Browseriy的.

./www/js/index.js -> ./www/js/index.bundled.js

所需的模块是 markedhighlight.js .

这两个模块仅用于由 blowserfiy 捆绑的客户端代码/文件。

一个懒惰而简单的解决方案就是简单地拥有

package.json A

{
......,
"dependencies":
{
...,
...,
"highlight.js": "*",
"marked": "*"
}
}

并将 www/js/index.bundled.js 文件包含在 npm 包文件中,因为它是在我的本地开发环境中的 browserify 之后。

但是,现在我认为 npm package.json 可以是以下之一:

package.json B

{
......,
"dependencies":
{
...,
...,
},
"devDependencies":
{
"highlight.js": "*",
"marked": "*",
"browserify": "*"
}
}

在这种情况下,浏览器化的 ./www/js/index.bundled.js 文件留在 npm 包中,并处理 markedhighlight 。 js 作为 devDependencies,还有 browserify

然后

package.json C

{
......,
"dependencies":
{
...,
...,
"highlight.js": "*",
"marked": "*",
"browserify": "*"
},
"scripts": {
"run": "browserify ./www/js/index.js -o ./www/js/index.bundled.js"
}
}

只是让你知道,我从来没有尝试过这个,也不知道这个脚本运行实际上是在 npm install myPackage 上运行的,也许不是,也许你知道正确的配置,也许有没有这样的事情。

在这种情况下,./www/js/index.bundled.js 被排除在 npm 包文件之外,并从最新的 npm 打包构建 标记highlight.js.

我认为这种方式有些合适的原因是尤其是在服务器端和客户端都使用和共享 npm 模块的场景中。

例如,看看 dnode .此 RPC 模块由 browserify (@substack) 的同一作者开发,并且应在服务器端和客户端共享相同版本的 dnode 模块。如果预浏览器 ./www/js/index.bundled.js 捆绑在已发布的 npm 包中,与服务器端 dnode 相比,它将过时。当然,我们可以通过 package.json 指定要安装的版本,但最好在服务器端和客户端都使用最新版本。

有什么建议吗?谢谢。

最佳答案

我建议使用第二个选择并将 browserify 指定为 devDependency。

您必须在将包发布到 npm 注册表之前构建它,因此用户不需要自己安装 browserify。

添加 Makefilemake 作为预发布脚本也很有用。

关于node.js - 发布使用 Browserify 开发的 npm 包的正确 package.json 方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22281305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com