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

时间:2019-06-18 06:22:29

标签: npm

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

我想为其创建一个NPM软件包,以便更轻松地为新项目安装,将模板与项目文件分开,将模板依赖项与项目依赖项分开,并允许在所有项目中更轻松地更新模板

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

例如,模板使用带有自定义_app.js文件的Next.js。它必须位于名为pages的文件夹的根目录中。我还必须在根目录中有各种配置文件。

这可以通过NPM完成吗,还是所有内容都需要安装在node_modules文件夹中?我在SO或Google上找不到能回答该问题的任何内容,因此,如果您碰巧在网上找到有关如何执行此操作的指南或可以概述我应该搜索的内容,将不胜感激。

1 个答案:

答案 0 :(得分:1)

使用纯npm,所有内容都有进入node_modules文件夹,因此您无法以这种方式解决问题。

也许使用grunt inityeoman之类的模板工具是解决方案,尽管–不幸的是–您将失去能够通过npm安装软件包的一些好处。

另一种选择是使用GitHub template repositories,这是最近才引入的。

最后但并非唯一的一种选择也可能是将文件内容包含在npm包中,但是手动创建pages/_app.js,但在其中简单地require从npm中获取文件内容模块,仅此而已。这至少有助于使内容具有可移植性,但是当然它仍然会要求您自行设置文件和文件夹结构。

对不起,我没有更好的答案,但是我希望它能有所帮助。

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