gpt4 book ai didi

npm - 如何从asp.net vnext项目中的wwwroot访问node_modules文件夹

转载 作者:行者123 更新时间:2023-12-03 23:20:40 26 4
gpt4 key购买 nike

如何从放置我的 index.html 的 wwwroot 访问未包含在 Visual Studio 解决方案文件中的 node_modules 文件夹。该 index.html 文件需要引用 npm 安装的包,如 angular.js。

但是如何?

我不想将整个 node_modules 文件夹复制到 wwwroot。那些不是住在那里的文件......

我不想在解决方案中包含 node_modules 文件夹,因为这会减慢一切并挂断...

看来前端开发不属于VS...

最佳答案

至少有两个明智的选择:

  • 使用 app.UseStaticFiles 为其他文件夹提供服务 .原解决方案来自 Ode to Code .我用它
    开发,因为 Visual Studio 似乎不尊重本地.npmrc文件设置为 prefix = wwwroot/node_modules .理想情况下,node_modules应该捆绑生产。有npm rollupplugin可以使用自动捆绑脚本import功能(ES2015)。
  • 从 CDN 提供 node_modules (例如 unpkg.com)。这相当简单,唯一的缺点是 CDN 的
    响应时间,特别是如果您已禁用浏览器缓存
    发展目的。

  • 这是在 ASP.NET Core 中提供文件夹的代码。 您只需要更改 Startup类(class):

    public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
    {
    ...some other stuff

    if (env.IsDevelopment())
    {
    ServeFromDirectory(app, env, "node_modules");
    }
    }

    public void ServeFromDirectory(IApplicationBuilder app, IHostingEnvironment env, string path)
    {
    app.UseStaticFiles(new StaticFileOptions
    {
    FileProvider = new PhysicalFileProvider(
    Path.Combine(env.ContentRootPath, path)
    ),
    RequestPath = "/" + path
    });
    }

    关于npm - 如何从asp.net vnext项目中的wwwroot访问node_modules文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35527001/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com