【发布时间】:2016-03-31 01:25:24
【问题描述】:
我有一个简单的 ASP .NET 5 空项目 - 安装了 npm 和 grunt。
我使用 npm 安装了一些客户端库,目前位于我的 ASP .NET 项目下的 node_modules 目录中。
我想将 node_modules 文件夹中的相关文件(例如 jquery.min.js)复制到 wwwroot 文件夹中。
我不清楚如何使用 grunt 来执行此操作 - 因为每个节点模块都有自己的依赖树,而且从包到包的文件结构似乎没有任何一致性。
我可以为我使用的每个客户端库显式编写一个 grunt 任务,但在这种情况下,我也可以手动下载所有内容并将文件手动放置在我需要的地方,避免一起使用 npm。
我知道我可以使用 bower,它有一个扁平的依赖树——这可能是我应该去的根——但我读过一些文章说“不需要 bower——npm 可以做这一切”和因此我想知道是否有办法纯粹使用 npm 来做到这一点。
有办法吗?或者“npm can do it all”声明是针对那些直接来自node_modules的require组件的项目?
TL DR; 对于分离源文件和构建文件的 ASP .NET 5 项目,bower 是否比 npm 更合适,如果不是,那么推荐的纯粹使用 npm 的方法是什么?
【问题讨论】:
-
您没有为我的回答写任何 cmets。您是否尝试使用我的建议?您主要希望将一些文件(例如,
jquery.min.js)从 node_modules 文件夹复制到wwwroot文件夹中。你现在能做到吗?如果您想获得更多信息,您应该提出更多问题。grunt或gulp允许您完全控制放置在wwwroot中的文件,但仍然可以轻松地复制带有文件的整个目录。如果您有一些未解决的问题,最好在那里提问。 -
感谢您的回答 Oleg,虽然它很好地解释了如何使用 grunt,但它并没有回答我的问题。为我想使用的每个单独的包编写任务或任务的一部分比下载并手动放置它们更难、更多工作和更复杂。
-
我想要的是 1 个任务,它将复制必要的文件——包括我在编写任务后使用 npm 获得的包中的任何新文件。我倾向于使用 bower,或者 npm 和 requirejs。
-
您可以将整个
node_modules复制到wwwroot以及所有子目录(您需要使用相应的选项,删除flatten: true,filter: "isFile",...,请参阅选项here) ,但这是不推荐的方式。因为您以 anything 的方式放置在您的页面上。您可能会遇到安全问题(一个人可以入侵您的网站)和法律问题(您可以放置非法内容并且可能需要为此付费)。我会严格控制您在网站上放置的内容。 -
我支付了一次 6000 欧元,因为有人从某个地方修改了两张 jpg,我只是将这两张图片放在我的网站上,而没有准确检查图片的来源。直到我收到一位律师的来信,提出了金钱索赔,我才知道这件事。在历史记录之后,我想完全控制我网站的所有内容。你可以信任你在 npm 上找到的每一个包,但是,从法律的角度来看,你 将负责你页面的内容,而不是你从未见过的一些不清楚的作者的 node/npm。
标签: gruntjs npm bower asp.net-core node-modules