首页 > 其他分享 >Blazor 使用 npm 依赖包

Blazor 使用 npm 依赖包

时间:2024-11-05 18:08:25浏览次数:1  
标签:npm node 依赖 index js webpack test Blazor interactjs

使用node包时,经常会有 import interactjs from '@interactjs/interactjs'; 这样类似的引用;这是 node 的语法,非node环境都不支持这种写法。所以 Blazor 要用 node 包,需要再用 js 封装一层。

示例项目

下面是一个 node 项目

{
  "name": "test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "webpack ./index.js --output-path ../ --output-filename index.bundle.js"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "@interactjs/actions": "^1.10.27",
    "@interactjs/auto-start": "^1.10.27",
    "@interactjs/interactjs": "^1.10.27",
    "@interactjs/snappers": "^1.10.27"
  }
}

入口文件是 index.js, 所以我们在 index.js 里封装 node 包

import interactjs from '@interactjs/interactjs';

console.log("测试....");

window.test = ()=> {
    console.info("window.test");
    console.info("interactjs", interactjs);
}

安装Webpack和打包

之前说了,import interactjs from '@interactjs/interactjs'; 这样的语法无法直接在 Blazor 里运行,所以还要把 node项目打包。就是配置文件里的 “build” 命令,当然还需要提前装 webpack

npm install webpack -g
npm install webpack-cli -g

为了避免每次项目修改,都是用命令行打包 node,可以在 csproj 文件里加编译事件

<Target Name="PreBuild" BeforeTargets="PreBuildEvent">
    <Exec Command="npm install" WorkingDirectory="NpmJS" />
    <Exec Command="npm run build" WorkingDirectory="NpmJS" />
  </Target>

这样每次编译项目都会先打包 node 项目。

其他

webpack打包出来的 js 全是闭包,所以里面的方法要被 blazor 使用,必须挂在 window 对象下;export 的用法在这里行不通了。

为什么 blazor 使用 node 如此麻烦,我依然使用 blazor 做前端,而不使用 vue。因为 blazor 最方便的地方不是使用 c# 写前端,而是可以实时同步服务端的数据状态,这在使用 H5 做设备 UI 时十分便利,且极易维护

标签:npm,node,依赖,index,js,webpack,test,Blazor,interactjs
From: https://www.cnblogs.com/cchong005/p/18528495

相关文章

  • dotNet 整合 Microsoft.Extensions.DependencyInjection 利用反射实现依赖批量注入
    前言框架.net8.0Microsoft.Extensions.DependencyInjection8.0创建三个类库项目ConfigServicesLogServicesMailServices创建一个控制台项目ConsoleAppMailConfigServicesnamespaceConfigServices.IService{publicinterfaceIConfigService{......
  • npm&pnpm
    npm与pnpm磁盘效率:pnpm更高效,节省磁盘空间。安装速度:pnpm通常更快,尤其是多项目环境下。依赖管理:pnpm更严格的依赖隔离,减少冲突。Monorepo支持:pnpm支持更好,尤其是大型项目中。Monorepo支持是指在一个代码仓库(repository)中管理多个项目或软件包的技术支持和实践。安装pn......
  • 小程序使用npm
    TDesign第一步:npminstall第二步:npmitdesign-miniprogram-S--omit=dev第三步:修改project.config.json文件,然后工具栏中项目---》重新打开此项目 第四步:构建成功后勾选, 将JS编译成ES5         构建:工具--》构建npm 第五步:修改配置信息 第......
  • blazor after visual studio update throws some strange JS warnings
    题意:Blazor在VisualStudio更新后出现一些奇怪的JS警告。问题背景:Afterupdatevisualstudioto17.11.3,inalmosteveryfilethatiopenedwithvisualstudiothrewsomewarning:在将VisualStudio更新到17.11.3后,几乎每个我用VisualStudio打开的文......
  • 【semantic Kernel】依赖注入
    参考:https://www.cnblogs.com/ruipeng/p/18241147代码///<summary>///依赖注入案例///</summary>publicstaticclassDependencyInjectionSample{publicstaticasyncTaskExec(){ServiceCollectionservices=newServiceCollection();......
  • .NET云原生应用实践(五):使用Blazor WebAssembly实现前端页面
    本章目标使用BlazorWebAssembly实现管理“贴纸”页面集成认证与授权机制如果你对BlazorWebAssembly的使用不感兴趣,可以跳过本章的阅读。你也可以使用自己熟悉的前端技术完成案例的界面部分,之前我们开发的后端API比较简单,所以自己实现一套前端界面并不会是一个困难的事情。......
  • 三周精通FastAPI:20 Dependencies 依赖项 和类作为依赖项
    官方文档:依赖项-FastAPI依赖项¶FastAPI提供了简单易用,但功能强大的依赖注入系统。这个依赖系统设计的简单易用,可以让开发人员轻松地把组件集成至 FastAPI。什么是「依赖注入」¶编程中的「依赖注入」是声明代码(本文中为路径操作函数 )运行所需的,或要使用的「依赖」......
  • 一文彻底弄懂Spring IOC 依赖注入
    SpringIOC(InversionofControl,控制反转)依赖注入是Spring框架的核心特性之一,旨在实现对象之间的松耦合,提升代码的可维护性、可测试性和可扩展性。下面我们将从以下几个方面深入探讨SpringIOC依赖注入的机制和实现原理。一、基本概念控制反转(InversionofControl)控制反......
  • Get包中的依赖管理介绍
    文章目录1.概念介绍2.使用方法3.示例代码4.内容总结我们在上一章回中介绍了"使用get进行路由管理"相关的内容,本章回中将介绍使用get进行依赖管理.闲话休提,让我们一起TalkFlutter吧。1.概念介绍依赖管理是一个常用的概念,我们先看看官方文档中的描述:Gethas......
  • 背包九讲——树形背包问题(有依赖的背包)
    目录树形背包问题问题引入:问题解读:算法例题:10.有依赖的背包问题-AcWing题库题目:算法实现:代码实现:背包问题第七讲——树形背包问题(有依赖的背包)背包问题是一类经典的组合优化问题,通常涉及在限定容量的背包中选择物品,以最大化某种价值或利益。问题的一般描述是:有一......