通过 npm 安装时创建 signalr.js 文件
creation of signalr.js file, when installing through npm
我正在尝试按照 this 文档使用 signalr 设置项目的客户端。
所以我有一个 asp.net 核心 mvc 项目,我从 运行 nuget 包管理器命令行中的这些命令开始:
npm init -y
npm install @microsoft/signalr
执行此操作后,文档中包含以下文本:
npm installs the package contents in the node_modules\@microsoft\signalr\dist\browser folder.
Create a new folder named signalr under the wwwroot\lib folder. Copy the signalr.js file to the
wwwroot\lib\signalr folder.
这部分让我非常困惑。我不知道 node_modules\@microsoft\signalr\dist\browser
目录在哪里,我找不到任何名为 node_modules 的东西。然后它还说我应该复制 signalr.js file
,这也令人困惑。我在项目中的任何地方都没有这样的文件,我不知道从哪里复制。
在此之后,文档说了另一件事,这很令人困惑:
Reference the SignalR JavaScript client in the <script> element. For example:
<script src="~/lib/signalr/signalr.js"></script>
这对我来说意义不大。我应该把这个标签放在哪里?在我项目的所有视图文件中?也许在我本地电脑上的 word 文件中?
我真的希望有人能帮助清理这些东西。
I don't know where node_modules@microsoft\signalr\dist\browser directory is, I cannot find anything called node_modules.
您可以运行npm list -g
查看安装了哪些全局库以及它们所在的位置。
您可以运行npm list
查看当前位置安装的非全局库。
我想你用的是Windows系统。如果你安装 signalr 包 globally,你会发现安装的文件夹在:%USERPROFILE%\AppData\Roaming\npm\node_modules
.
如果您安装非全局库,您将在解决方案文件夹中找到已安装的文件夹(不是 项目文件夹)。
例如,我在D:\repos\MvcProjct
中创建解决方案,node_modules\@microsoft\signalr\dist\browser
将存在于其中(D:\repos\MvcProjct\node_modules\...
)。
更多详情可参考以下link:
This does'nt make to much sense to me. Where should I put this tag? In all view files in my project? perhaps in a word file on my local pc?
这取决于你。如果你想全局使用这个js文件,你可以把它放在_Layout.cshtml:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>@ViewData["Title"] - Dotnetcore5</title>
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
<link rel="stylesheet" href="~/css/site.css" />
</head>
<body>
<header>
//...
</header>
<div class="container">
<main role="main" class="pb-3">
@RenderBody()
</main>
</div>
<footer class="border-top footer text-muted">
//..
</footer>
<script src="~/lib/jquery/dist/jquery.min.js"></script>
<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
<script src="~/js/site.js" asp-append-version="true"></script>
//add here....
<script src="~/lib/signalr/signalr.js"></script>
@await RenderSectionAsync("Scripts", required: false)
</body>
</html>
如果只想在特定视图中使用,直接放在特定视图中即可:
@section Scripts
{
<script src="~/lib/signalr/signalr.js"></script>
}
我正在尝试按照 this 文档使用 signalr 设置项目的客户端。 所以我有一个 asp.net 核心 mvc 项目,我从 运行 nuget 包管理器命令行中的这些命令开始:
npm init -y
npm install @microsoft/signalr
执行此操作后,文档中包含以下文本:
npm installs the package contents in the node_modules\@microsoft\signalr\dist\browser folder.
Create a new folder named signalr under the wwwroot\lib folder. Copy the signalr.js file to the
wwwroot\lib\signalr folder.
这部分让我非常困惑。我不知道 node_modules\@microsoft\signalr\dist\browser
目录在哪里,我找不到任何名为 node_modules 的东西。然后它还说我应该复制 signalr.js file
,这也令人困惑。我在项目中的任何地方都没有这样的文件,我不知道从哪里复制。
在此之后,文档说了另一件事,这很令人困惑:
Reference the SignalR JavaScript client in the <script> element. For example:
<script src="~/lib/signalr/signalr.js"></script>
这对我来说意义不大。我应该把这个标签放在哪里?在我项目的所有视图文件中?也许在我本地电脑上的 word 文件中?
我真的希望有人能帮助清理这些东西。
I don't know where node_modules@microsoft\signalr\dist\browser directory is, I cannot find anything called node_modules.
您可以运行npm list -g
查看安装了哪些全局库以及它们所在的位置。
您可以运行npm list
查看当前位置安装的非全局库。
我想你用的是Windows系统。如果你安装 signalr 包 globally,你会发现安装的文件夹在:%USERPROFILE%\AppData\Roaming\npm\node_modules
.
如果您安装非全局库,您将在解决方案文件夹中找到已安装的文件夹(不是 项目文件夹)。
例如,我在D:\repos\MvcProjct
中创建解决方案,node_modules\@microsoft\signalr\dist\browser
将存在于其中(D:\repos\MvcProjct\node_modules\...
)。
更多详情可参考以下link:
This does'nt make to much sense to me. Where should I put this tag? In all view files in my project? perhaps in a word file on my local pc?
这取决于你。如果你想全局使用这个js文件,你可以把它放在_Layout.cshtml:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>@ViewData["Title"] - Dotnetcore5</title>
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
<link rel="stylesheet" href="~/css/site.css" />
</head>
<body>
<header>
//...
</header>
<div class="container">
<main role="main" class="pb-3">
@RenderBody()
</main>
</div>
<footer class="border-top footer text-muted">
//..
</footer>
<script src="~/lib/jquery/dist/jquery.min.js"></script>
<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
<script src="~/js/site.js" asp-append-version="true"></script>
//add here....
<script src="~/lib/signalr/signalr.js"></script>
@await RenderSectionAsync("Scripts", required: false)
</body>
</html>
如果只想在特定视图中使用,直接放在特定视图中即可:
@section Scripts
{
<script src="~/lib/signalr/signalr.js"></script>
}