【问题标题】:node_modules breaks build in Visual Studionode_modules 中断了 Visual Studio 中的构建
【发布时间】:2017-10-14 10:38:03
【问题描述】:

正在努力将 Angular (v4) 添加到现有的 ASP.NET MVC 4 应用程序。其中一个项目包括 Selenium Web Driver,其中包含一个 web.config 文件。

node_modules\selenium-webdriver\lib\test\data\web.config

此文件夹未包含在项目中,但位于我的 Web 应用程序文件夹中

myapplication\node_modules
myapplication\Controllers
myapplication\Views
myapplication\web.config
etc...

selenium-webdriver 文件夹中的 web.config 导致构建中断并出现以下错误:

使用注册为的部分是错误的

allowDefinition='MachineToApplication' 超出应用程序级别。这 错误可能是由于未将虚拟目录配置为 IIS 中的应用程序。

很常见的错误,当它是你自己的错误时很容易修复,但由于这是我正在使用的库,我无法控制文件。所以根据我的研究,我的问题有点平淡:

  • 我可以把 selenium-webdriver 的“test”文件夹放到别的地方吗?
  • 我的 node_modules 文件夹不应该位于我的 Web 应用程序的根目录吗?
  • 一般......我该如何解决这个问题?

【问题讨论】:

  • 这就是你要找的东西:link,实际上这个问题有点重复
  • 根本不是重复的。我 100% 知道如何通过更改默认 web.config 设置来解决此问题。我正在寻找一些使用 npm 的方法来解决这个问题。基于我的赏金被忽略,看起来唯一的解决办法是下面的“隐藏”技巧......这很糟糕。
  • npm 的另一种解决方法是在postinstall 中删除该 web.config 文件,因此您无需触摸全局 web.config
  • @tiona 你能用一个例子发布一个答案吗?如果你在 3 天内完成,我可以奖励你,但这听起来正是我想要的。

标签: angularjs asp.net-mvc-4 selenium-webdriver npm node-modules


【解决方案1】:

它更像是一种解决方法,但我将您的 node_modules 文件夹 隐藏 它不会显示在您的解决方案资源管理器中,Visual Studio 将正常运行您的项目。据我所知,这不会影响您的网络应用程序的运行。

【讨论】:

  • 是的,这就是我必须解决的问题。但这肯定会使我们在构建服务器等方面的事情变得复杂。
【解决方案2】:

安装rimraf

 npm install rimraf

然后在package.json 中使用rimraf 命令

 'script': {
    'postinstall': 'rimraf node_modules/**/web.config'
 }

请注意,第一次你必须手动删除它,因为软件包已经安装,postinstall 命令不会运行。

但是对于您未来的所有安装 + 为您的队友,它将自动处理,因为 postinstall 命令在每个 npm install 之后运行

请阅读更多关于npm pre & post hooks的信息

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-30
    • 2018-03-12
    • 2021-07-12
    • 2016-07-11
    • 2010-09-23
    • 2012-10-18
    • 2022-01-24
    • 1970-01-01
    相关资源
    最近更新 更多