NPM:创建一个NPM包,将文件和文件夹添加到项目根目录中

NPM:创建一个NPM包,将文件和文件夹添加到项目根目录中,npm,Npm,我创建了一个web应用程序模板,经常用于许多不同的项目 我想为它创建一个NPM包,以便更容易为新项目安装,将模板从项目文件中分离,将模板依赖项从项目依赖项中分离,并允许更容易地跨所有项目更新模板 我的问题是需要在根目录中安装一些文件/文件夹(即保存package.json)。大多数可以放在节点\u modules文件夹中,但是我有一些文件必须放在根目录中 例如,模板将Next.js与自定义的\u app.js文件一起使用。这必须位于名为pages的文件夹的根目录中。我还有各种配置文件,它们必须在

我创建了一个web应用程序模板,经常用于许多不同的项目

我想为它创建一个NPM包,以便更容易为新项目安装,将模板从项目文件中分离,将模板依赖项从项目依赖项中分离,并允许更容易地跨所有项目更新模板

我的问题是需要在根目录中安装一些文件/文件夹(即保存
package.json
)。大多数可以放在
节点\u modules
文件夹中,但是我有一些文件必须放在根目录中

例如,模板将Next.js与自定义的
\u app.js
文件一起使用。这必须位于名为
pages
的文件夹的根目录中。我还有各种配置文件,它们必须在根目录中

这可以通过NPM完成,还是所有需要安装在
node\u modules
文件夹中?我在SO或Google上很难找到任何答案,因此如果你碰巧知道如何做这件事的在线指南,或者能概述我应该搜索的内容,我将不胜感激。

对于纯npm,所有内容都必须转到
节点模块
文件夹,因此你无法以这种方式解决问题

也许使用模板工具(如或)在这里可能是一个解决方案,但不幸的是,您将失去通过npm安装软件包的一些好处

另一个选择可能是使用最近刚刚引入的

最后但并非最不重要的一个选项可能是,只在npm包中包含文件内容,但手动创建
页面/_app.js
,但在其中只需要
从npm模块中获取文件内容,就是这样。这至少有助于使内容可移植,但当然它仍然要求您自己设置文件和文件夹结构

很抱歉,我没有更好的答案,但我希望它能有所帮助


PS:一个“解决方案”可能是在npm模块的
package.json
文件中使用
postinstall
步骤来创建文件夹结构,将文件复制到它们应该在的位置等等,但至少对我来说,这更像是一个笨拙的解决方案,而不是一个真正的解决方案。

我觉得npm不是适合这项工作的工具,因为它是为了向项目中添加完整且不可变的包,而模板通常被设计为后续修改的基础。Npm提供。考虑向您的PACKAG.JSON添加“<代码>安装后< /COD>脚本”,例如“代码>脚本”:{“安装后”:“…”},< /代码>。添加到脚本逻辑中,将必要的文件从node_模块移动(或复制)到项目的根目录,这可能会有所帮助。安装npm包后,
postinstall
脚本将自动激发。基本上,将文件包括在项目中,并使用
postinstall
脚本移动它们。@RobC您的评论基本上只是重复了我昨天在回答中已经写过的内容。@GoloRoden-是的,您是对的,我之前阅读时遗漏了“PS”部分。我做到了“最后但并非最不重要……”。无论如何,我将留下我的评论,因为它为您的高级评论的含义提供了进一步的上下文,即“使用
postinstall
步骤…”。