我遗漏了什么(第一次使用jarn的用户+;JQuery)

我遗漏了什么(第一次使用jarn的用户+;JQuery),jquery,asp.net-core,yarnpkg,Jquery,Asp.net Core,Yarnpkg,因此,我只是尝试使用Thread将JQuery运行时添加到.NET核心网站项目中 我在项目文件夹中运行的命令是: yarn add jquery --modules-folder ./root/scripts 它确实添加了jQuery(到指定的子文件夹),但它添加的内容比我预期的要多。有了Nuget,我会得到: jquery-3.3.1.js jquery-3.3.1.min.js jquery-3.3.1.min.map 即使Nuget不会将这些文件添加为站点内容(尽管我可

因此,我只是尝试使用Thread将JQuery运行时添加到.NET核心网站项目中

我在项目文件夹中运行的命令是:

  yarn add jquery --modules-folder ./root/scripts
它确实添加了jQuery(到指定的子文件夹),但它添加的内容比我预期的要多。有了Nuget,我会得到:

  jquery-3.3.1.js
  jquery-3.3.1.min.js
  jquery-3.3.1.min.map
即使Nuget不会将这些文件添加为站点内容(尽管我可以直接复制它们),我也会得到我所需要的。但通过Thread,我得到了一个完整的源代码库:

总共有123个文件(dist中的文件甚至没有用版本号标记)

这是预期的结果吗。。。我用的纱线(概念上)错了吗


我是否应该将构建JQuery作为我的项目的一部分,而不仅仅是包含和使用它?

这就是
warn
或者更准确地说是
npm
的工作方式,它被
warn
用作模块的存储库

它并不仅仅安装库。它安装发布的整个软件包。通常,发布者不会在发布的版本中省略一些文件,而您基本上可以获得整个存储库。这包括预期的库文件,以及文档、原始源代码、测试等

这就是为什么这张关于
node\u模块的图片对于那些在生活中的某个时候不得不使用
npm
的人来说很有趣的原因:

回答你的问题:不,你没有用错。它正在按预期工作,尽管看起来很奇怪


如果您只需要特定的文件,最好使用
warn
进行安装,然后将文件复制过来。但是要小心,如果更新包版本,文件的目的地可能会更改,因此请记住。

这就是
warn
的工作方式,或者更准确地说是
npm
,它被
warn
用作模块的存储库

它并不仅仅安装库。它安装发布的整个软件包。通常,发布者不会在发布的版本中省略一些文件,而您基本上可以获得整个存储库。这包括预期的库文件,以及文档、原始源代码、测试等

这就是为什么这张关于
node\u模块的图片对于那些在生活中的某个时候不得不使用
npm
的人来说很有趣的原因:

回答你的问题:不,你没有用错。它正在按预期工作,尽管看起来很奇怪

如果您只需要特定的文件,最好使用
warn
进行安装,然后将文件复制过来。但是要小心,如果更新软件包版本,文件的目的地可能会更改,因此请记住这一点。

Marko的描述(以及那张很棒的图表)对发生的情况给出了很好的解释。要回答关于解决这个问题的问题,有一系列令人眼花缭乱的潜在选项,从“大口喝”到“网页包”

不过,对于复制几个javascript库这样简单的事情,我建议使用ASP.NET中包含的基本
BuildBundlerMinifier

默认的ASP.NET Core 2.0模板包括部分现成的支持,但您确实需要对项目进行一些更改以使其正常工作:

  • .csproj
    文件中,您需要为
    BuildBundlerMinifier
    添加一个包引用。您将把它添加到与Microsoft.AspNetCore.All的引用相同的
    。这将启用绑定器并使其在构建过程中触发

    
    
  • 正如我提到的,标准模板部分支持bundler。我的意思是,默认情况下,它在项目根目录中包含一个
    bundleconfig.json
    文件。此文件配置绑定器接触的文件。如果您要查找的是
    jquery-3.3.1.min.js
    ,那么您的文件应该如下所示:

    [
    {
    “outputFileName”:“root/scripts/jquery.min.js”,
    “输入文件”:[
    “node_modules/jquery/dist/jquery.min.js”
    ],
    “缩小”:{
    “已启用”:false
    }
    }
    ]
    
  • 这里的最终结果是,每次构建项目时,绑定器都会自动将
    jquery.min.js
    node\u modules/jquery/dist/
    复制到
    root/scripts/

    如果您使用的是纱线,我也强烈推荐该库。此软件包使MSBuild能够在生成期间自动检索您的软件包。与bundler结合使用时,可确保每次构建时都在
    /scripts
    文件夹中保存包的最新副本

    Marko的描述(以及那张令人敬畏的图表)很好地解释了正在发生的事情。要回答关于解决这个问题的问题,有一系列令人眼花缭乱的潜在选项,从“大口喝”到“网页包”

    不过,对于复制几个javascript库这样简单的事情,我建议使用ASP.NET中包含的基本
    BuildBundlerMinifier

    默认的ASP.NET Core 2.0模板包括部分现成的支持,但您确实需要对项目进行一些更改以使其正常工作:

  • .csproj
    文件中,您需要为
    BuildBundlerMinifier
    添加一个包引用。您将把它添加到与Microsoft.AspNetCore.All的引用相同的
    。这将启用绑定器并使其在构建过程中触发

    
    
  • 正如我提到的,标准模板部分支持bundler。我的意思是,默认情况下,它在项目根目录中包含一个
    bundleconfig.json
    文件。此文件配置bun接触的文件