【发布时间】:2016-01-25 18:19:20
【问题描述】:
我目前正在尝试将旧的 ASP.NET 网站项目迁移到 Visual Studio 2015。我想使用 NPM/Gulp 将 LESS 文件自动编译为 CSS(此任务由 WebEssentials 在 VS 2013 中完成)。
我在项目中添加了一个package.json 文件来加载所需的组件。这会在 WebSite 项目的根目录中创建一个 node_modules 文件夹,这就是我的问题开始的地方:
由于网站项目没有项目文件,因此在项目根文件夹中找到的所有文件(和子目录)都会自动成为项目的一部分。由于node_modules内部的目录结构嵌套很深,会因为路径名太长而导致错误。
一个简单的解决方法是在node_modules 文件夹上设置hidden 属性(但这必须由每个开发人员手动完成)。
有没有办法告诉 NPM 将节点模块放入另一个目录,例如解决方案文件所在的项目 (..\node_modules) 上一层?
或者是否可以通过 gulp-task(在项目加载时运行)设置文件夹的 hidden 属性?
【问题讨论】:
-
您可以反过来解决问题。在不同的位置创建您的网站根目录,并使用 gulp 编译源并将它们写入您的网站文件夹(即
public)然后从您的解决方案目录运行 npm/gulp,并让您网站的入口点指向 @ 987654328@文件夹。 -
@Rik:我不确定 ASP.NET WebSite 项目是否可行,但我会考虑的。另外,如果可能的话,我宁愿不要对那个旧项目做太多改动。
-
但是您正在某处添加 npm 文件。选择不在您网站文件夹中的任何位置,然后从那里使用
gulp.src().pipe(dostuff).gulp.dest(path/to/website/dir)。使用 gulp.dest() 您可以将文件复制到任何位置。不需要任何结构更改。 -
感谢@Rik,这行得通。 NPM/Gulp 也可以在解决方案级别添加(不仅在项目级别)。
标签: asp.net npm visual-studio-2015 node-modules web-site-project