RE:Angular2 2.0.0,angular-cli v1.0.0-beta.11-webpack.8
如何在构建时告诉angular-cli在“dist”的根目录中包含“src / assets”中的文件?
我们部署到Windows主机,需要包含一个“web.config”文件,告诉IIS将所有内容路由到索引 . 我们正在做这个预备RC4,但随着所有的更新它落在了裂缝(我不记得我们是如何做到的) .
我一直在淘汰GitHub repo docs并在错误的地方避货't found anything of use in regards to this topic. Maybe I'm?
在ToC中,有一个项目符号"Adding extra files to the build",但似乎该部分不存在 .
4 回答
angular-cli.json的“assets”属性可以配置为包含angular-cli webpack构建中的自定义文件 . 因此,将“assets”属性值配置为数组 . 例如:
上面的配置会在angular-cli webpack构建期间将config.jsn和.htaccess复制到dist文件夹中 . 以上设置适用于angular-cli版本1.0.0-beta.18
当前正确答案:
该团队已经在更高版本的Angular CLI中添加了对将特定文件按原样复制到输出文件夹(默认为
dist
)的支持(将是beta 17或19 - 它已经在最终的1.x版本中使用了很长时间) .你只需将它添加到
angular-cli.json
中的数组中:(注意路径是相对于
src
文件夹的)我个人使用它,它工作得很好 .
从beta 24开始,我在Angular CLI中添加了一项功能,确保在运行ng test而不仅仅是ng serve时,从webpack dev服务器提供所有资产文件和文件夹 .
它还支持在用于单元测试的webpack dev服务器中提供资产文件(
ng test
) .(如果你需要一些JSON文件用于测试,或者只是讨厌在控制台中看到404警告) .
它们已经从
ng e2e
提供,因为它运行完整ng serve
.它还具有更多高级功能,例如从文件夹中过滤您想要的文件,以及输出文件夹名称与源文件夹不同:
.
.
[仅供存档]原始答案(2016年10月6日):
目前不支持此功能(从beta-16开始) . 我向团队提出了确切的关注(web.config文件),但它似乎不会很快发生(除非你要求CLI等) .
请关注this issue以获取完整的讨论和未来可能的详细信息 .
附:
对于JSON文件,您可以将其放在
./src/assets/
中 . 此文件夹按原样复制到./dist/assets/
. 这是当前的行为 .在systemJS早期,有另一个
./public/
文件夹被直接复制到./dist/
,但这在Webpack版本中消失了,上面讨论的问题讨论过 .一个解决方案(虽然在我看来有点像黑客)是在
main.ts
文件中声明一个变量,它需要你想要包含在webpack构建输出中的额外文件 .EX:
当webpack在
main.ts
中遇到此变量声明语句时,它将作为构建输出的一部分发出原始web.config
文件:一个理想的解决方案是在webpack配置中,但是我无法通过
angular-cli.json
(beta.16)对angular-cli如何管理这个问题做出正面或反面 .因此,如果有人有一个更好的答案,扩展webpack配置为angular-cli生成的项目,我很乐意听到它 .
angular-cli.json文件中有一个“脚本”部分 . 您可以在那里添加所有第三方javascript文件 .