Angular2 - Angular-CLI - 从自动构建观察器中排除文件夹

时间:2016-10-05 08:45:15

标签: angular angular-cli

  

angular-cli beta.16,使用webpack。使用CLI创建的项目

您好,

这是我的项目结构:

- server - server.js - src - app - compoents & co - assets - index.html

我正在使用server.js来处理来自我的一个角度组件的上传请求。 文件已上传,我想把它放在assets目录中,所以我可以在app中使用它。

问题是当我做这样的工作(在资源文件夹中上传文件)使我的angular-cli重新构建整个应用程序时(因为它检测到我的文件发生了变化),所以应用程序重新加载到浏览器,我不能使用它。

有没有办法为CLI的“watch build”任务排除某些文件夹(对我来说是'assets'文件夹)?所以当我将新文件放入其中时,CLI不会再次构建应用程序?

谢谢你们!

2 个答案:

答案 0 :(得分:1)

我不相信有。然而,你正在考虑这种落后,或者考虑到有这么多的赞成,我可能不理解这个问题。

  

我想将它放在assets目录中,所以   我可以在应用程序中使用它。

这不会加起来。你在应用程序中使用它是什么意思?您已经在应用程序中拥有这些文件,您自己说:

  

我正在使用server.js来处理来自我的一个角度组件的上传请求。

     

..来自我的一个角色组件..

让我们看看你可以做你想要的事情。文件上传到资产。怎么办 ?

Webpack-dev-server从内存中提供文件。使用--watch,它会添加观察者,以便知道文件何时更改并更新其内存。如果文件没有改变(或者在一个假想的世界中,你没有按照你的要求观看目录),那么没有什么新东西可以服务。换句话说,您将无法在应用中的任何位置使用src="assets/myNewlyUploadedAsset.png",它将返回404.

我假设您要这样做,因为在server.js您对这些文件进行了一些更改。那么你有什么选择来获得这些变化呢?

您将它存储在除资产之外的其他位置。这就是你应该做的,因为你的app文件夹确实不是上传用户内容的地方。

答案 1 :(得分:0)

您可以在 tsconfig.json

中添加排除文件的列表
{
 "exclude": [
   "node_modules",
   "./pathToYourFile"
 ]
}

在您的情况下,将是这样

{
 "exclude": [
   "node_modules",
   "./server/server.js"
 ]
}