【问题标题】:NPM location in ASP.Net 5 applicationASP.Net 5 应用程序中的 NPM 位置
【发布时间】:2018-10-22 15:27:56
【问题描述】:

我正在创建一个 ASP.Net 5 应用程序,并且有一些客户端需要的 npm 包。我已经配置了 package.json,并且在依赖项下看到了 NPM 文件夹。我还看到了带有实际包的隐藏 node_modules 文件夹。

无法提供这些文件,因为它们不在 wwwroot 文件夹中。

我尝试将 package.json 添加到 wwwroot 文件夹,然后将包添加到 wwwroot。但是,我收到一个错误,我认为该错误与路径太长有关。它得到:“项目元数据(完整路径)不能应用 node_modules”。此外,大多数示例在根级别显示 package.json。

我见过压缩包的 gulp 文件的例子。似乎希望这些包位于 wwwroot 中,但默认情况下它们不在此位置。

我找到了一种将 bower 包移动到 wwwroot 的方法,但我无法将 bower 用于其中一些包。

这方面的最佳做法是什么?

【问题讨论】:

    标签: npm asp.net-core package.json


    【解决方案1】:

    我不知道有任何最佳实践,但common 实践就是您所描述的。然而,对于 aspnet5 项目,这有点不同。

    aspnet5 团队假定您下拉 npm 包以与 gulp 一起使用。另一方面,bower应该用于下拉前端依赖项。

    我见过压缩包的 gulp 文件的例子。它 似乎希望这些软件包位于 wwwroot 中,但这不是 它们是默认的。

    默认的脚手架应该有一个缩小任务。看看你的gulpfile.js。在该文件中,有一个paths.webroot,默认为./wwwrootmin:js 任务将在 /wwwroot/js 文件夹中找到您的所有 javascript 文件,并将其连接并缩小。如果您需要添加更多 gulp 任务,那么您只需将它们链接到该任务中即可。如果您的脚本位于 /wwwroot/js 文件夹中,则无需摆弄路径。

    【讨论】:

    • NPM 包如何进入 wwwroot?
    • @user1617407 他们没有。它们进入node_modules 文件夹。 bower 包默认进入/wwwroot/lib 文件夹。
    • 那么我的浏览器怎么调用它们呢?我特别尝试使用基于 npm 而不是 bower 的 angular2 beta 教程。
    • 你试过凉亭angular2 包吗?
    • 哦,抱歉,是的。我认为唯一的出路是使用npm3 作为angular2 will not support bower,可能部分是因为bower is dying。在 aspnet 存储库中也有一个 issue 。现在,我想您可以手动将所需的脚本复制到 wwwroot 文件夹中,或者安装 npm3 并在 wwwroot 文件夹中添加 package.json
    【解决方案2】:

    你可以使用 gulp 来移动你需要的依赖。这是一个将 jquery 从node_modules 复制到wwwroot 的示例。

    gulp.task("jquery",
        function() {
            return gulp.src("node_modules/jquery/dist/*")
                       .pipe(gulp.dest("wwwroot/lib/jquery"));
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-18
      • 2016-09-11
      • 2014-09-30
      相关资源
      最近更新 更多