回龙叫不醒
请问有办法查询 Windows AD 内的电脑是否未激活/盗版/指定版本OS吗?
开PowerShell控制台(管理员身份运行)。
用这个PowerShell脚本:
Import-Module ActiveDirectory
$Computers = Get-ADComputer -Filter * -Property *
foreach ($Computer in $Computers) {
$ComputerName = $Computer.Name
$OSVersion = Invoke-Command -ComputerName $ComputerName -ScriptBlock { (Get-WmiObject -Class Win32_OperatingSystem).Caption }
$ActivationStatus = Invoke-Command -ComputerName $ComputerName -ScriptBlock { (cscript //Nologo slmgr.vbs /dli | Out-String) -match "License Status: (.*)" }
if ($ActivationStatus -match "Licensed") {
$ActivationStatus = "Activated"
} else {
$ActivationStatus = "Not Activated"
}
[PSCustomObject]@{
ComputerName = $ComputerName
OSVersion = $OSVersion
ActivationStatus = $ActivationStatus
}
}
回龙叫不醒
git,显示本地分支超前1个版本落后2个版本,如何让本地代码跟远程代码完全一致?
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250108/e10a6238e97975e52b30f51c98e18b0d.png)
目前我的操作是先将我的本地分支回退一个版本,将超前的这个commit删除(注:这个commit的代码我不需要了),再pull远程代码,这样就可以让我的本地代码跟远程代码完全一致了。
有没有可以一次达到这个效果的命令?
回龙叫不醒
linux里如何将一个文件和一个套接字绑定?
你需要
"tail" (https://link.segmentfault.com/?enc=hVQjrHb%2F9IbdLLngfCuRbw%3D%3D.dfZsADVvuV7t7LvXNqdpRyzdpbospBhRT%2BpmhE3hv3V8sX2bhKMi8xfKHF3vHBmLoEbgMIv4GT76yZEIsg9LDw%3D%3D)
tail -f a.log | nc ......
«tail
"-f, --follow[={name|descriptor}]"
output appended data as the file grows;
an absent option argument means 'descriptor'With --follow (-f), tail defaults to following the file
descriptor, which means that even if a tail'ed file is renamed,
tail will continue to track its end. This default behavior is
not desirable when you really want to track the actual name of
the file, not the file descriptor (e.g., log rotation). Use
--follow=name in that case. That causes tail to track the named
file in a way that accommodates renaming, removal and creation.»
回龙叫不醒
词云图中如何自定义词语的字体大小?
如何自定义词云中的文字大小,我希望权重较大的文字能显示的更大些,比如下面这个例子中我想让最大的文字大小达到40px,我该怎么做呢?
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250106/7981d55095ff2e69556030f4a443e9ef.png)
回龙叫不醒
AMH在阿里云新服务器上安装失败?
Call Stack (most recent call first):
cmake/boost.cmake:205 (COULD_NOT_FIND_BOOST)
CMakeLists.txt:1284 (INCLUDE)
-- Configuring incomplete, errors occurred!
See also "/tmp/mysql-8.0.26/CMakeFiles/CMakeOutput.log".
See also "/tmp/mysql-8.0.26/CMakeFiles/CMakeError.log".
make: * No targets specified and no makefile found. Stop.
make: * No rule to make target `install'. Stop.
chmod: cannot access ‘/usr/local/mysql-8.0’: No such file or directory
chown: cannot access ‘/usr/local/mysql-8.0’: No such file or directory
/root/amh/modules/mysql-8.0/AMHScript: line 147:
/usr/local/mysql-8.0/bin/mysqld: No such file or directory
chmod: cannot access ‘/home/usrdata/mysql-8.0’: No such file or directory
chown: cannot access ‘/home/usrdata/mysql-8.0’: No such file or directory
sed: can't read /usr/local/mysql-8.0/support-files/mysql.server: No such file
or directory
/root/amh/modules/mysql-8.0/AMHScript: line 152: /usr/local/mysql-8.0/support-files/mysql.server: No such file or directory
/root/amh/modules/mysql-8.0/AMHScript: line 155:
/usr/local/mysql-8.0/bin/mysqladmin: No such file or directory
/root/amh/modules/mysql-8.0/AMHScript: line 157:
/usr/local/mysql-8.0/bin/mysql: No such file or directory
[Notice] mysql-8.0 is not installed.
抱歉。安装 AMH 失败了,
如有需要帮助安装,请联系我们:
"https://amh.sh/bbs/forum.htm" (https://link.segmentfault.com/?enc=c0vumX4Tf4y9z7zhXKMS1g%3D%3D.JPqEVqaAckP2kNV4Xu62LHuuw29SwHQYlKL3i1ZNgOE%3D)
Ubuntu 22
回龙叫不醒
vue+element 上传svga图片到阿里云,但是图片渲染不出来?
"42313400d18dcf1e1f386ba6c3f6c23.jpg" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250101/220a55e925698dc8ed8f8d4edbaf3868.png)
vue element 上传svga图片到阿里云,但是图片渲染不出来?
svga 图片怎么渲染呢? 项目是"vue"的
回龙叫不醒
h5界面怎么添加到手机桌面?
h5界面怎么添加到手机桌面?
回龙叫不醒
https 和 tcp 的关系?
个人背景:是一个准备深入了解网络知识的前端新人。
问题背景:在了解 osi 模型的时候,了解了 https 是跑在应用层的协议,而 tcp/ip 是传输层的协议,在了解相关知识的时候产生了一个疑问。
接下来的问题为谷歌浏览器背景。
问题1:是因为有了 tcp/ip 协议,才选用 https 这种传输方式?还是先选用了 https 协议,再有了 tcp/ip 呢?
问题2:在网址栏输入 www.baidu.com ,我目前的理解是,浏览器跑在应用层,会通过 https 请求到目标服务器,这个过程会建立 tcp
链接。但是这个建立了 tcp 链接的时候是在 osi 的哪一层呢?
回龙叫不醒
可以直接CONSOLE ID DOM是什么时候更新出来的特性?
a1
a2
a3
a4
https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241226/1a565e06cf13ff778d20b847dbdc3685.png
无意中发现chrome 116,Edge 都可以这么输出,没有引用jquery等类库。
请问这是哪个版本更新出来的?
回龙叫不醒
prettier问题?
把文件行尾格式从LF改为CRLF即可,或这个改prettier配置
{
endOfLine:'auto'
}
回龙叫不醒
vue2的computed里写reverse为什么会报错?
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241221/bfcb52ced2903d552f2b4e3fca26b2d3.png)
另外想问一下为什么在模板的v-for循环里写.reverse也会报错,内存溢出。
回龙叫不醒
为什么 MDN 说原型继承中不能有私有属性?
MDN 的作者措辞还是非常严谨的,“简单替代方案”,也就是说实现类似的功能,道路将会非常曲折。
你的方法已经略显曲折了,但还是没有完全模拟出私有属性该有的样子——如果使用原型链继承的话,所有子类实例的 ".v" 属性都会指向同一个 "value":
function SubC (){}
SubC.prototype = new C();
var subC1 = new SubC();
var subC2 = new SubC();
// 注意这里修改的是 subC1.v
subC1.v = 10086;
// 注意这里打印的是“没被修改”的 subC2.v
console.log(subC2.v) // 10086
不过,这并不是你的写法有问题,而是原型链继承的固有缺陷,所以这里要被迫使用构造函数继承,这就偏离了“原型链继承”的语境限制,复杂程度也更上一层楼:
function SubC1 (){
C.call(this);
}
SubC.prototype = new C();
回龙叫不醒
为什么一个 logger 的 handlers 是空的,但是还是可以往标准输出输出内容呢?
命名为 101.py
from nameko.timer import timer
class KeywordService:
name = 'keyword_service'
@timer(1)
def print_log_ingo(self):
from nameko.runners import _log
_log.info('哈哈哈哈')
print(_log.handlers)
运行 "nameko run 101"
«需要安装 nameko 可以通过 pip install nameko»
输出如下:
╰─➤ nameko run 101
starting services: keyword_service
哈哈哈哈
[]
哈哈哈哈
[]
哈哈哈哈
[]
哈哈哈哈
[]
很奇怪,明明 handlers 是空列表,但是 「哈哈哈哈」 还是输出到了标准输出中
为什么?我只知道需要输出到标准输出,必须通过配置 handlers
难道还有不用配置 handlers 就可以输出到标准输出的方式?
***
不通过 "nameko run 101" 运行,而是直接 "python 101.py" 运行发现又是没有任何输出的
from nameko.timer import timer
from nameko.runners import _log
_log.info('哈哈哈哈')
print(_log.handlers)
输出如下:
(ideaboom) ╭─ponponon@MBP13ARM ~/Desktop/code/me/ideaboom ‹feature/svddb*›
╰─➤ python -u "/Users/ponponon/Desktop/code/me/ideaboom/101.py"
[]
回龙叫不醒
网站搭建相关问题?
1. nginx、tomcat只是一个中间件,一个软件,他需要跑在实体机器上面。就像你的windows电脑安装了一个浏览器。
2. 搭建网站时候看情况使用nginx、tomcat。你需要知道web应用默认使用80、443接口,如果你仅有一个WEB应用,不用nginx也没有事。你有多个web应用,需要共同使用80、443,那你就最好需要一个nginx这类的反向代理工具,将从80、443的进入流量按规则分配到你的后端应用。
3. 可以,只需要将后端服务端口暴露出来即可
4. 你需要知道几件事:
1. 你的防火墙开了没有?需要确认云服务商的防火墙时候开通了80、443端口,可以使流量进入
2. 如果使用域名解析、或者IP直接访问80、443,由于国内政策法规,你是否对域名、服务器进行备案?
回龙叫不醒
Python 的 FastAPI 框架有没有全局数据容器?
直接用 contextvars
import contextvars
import types
import typing
request_global = contextvars.ContextVar("request_global",
default=types.SimpleNamespace())
# This is the only public API
def g():
return request_global.get()
"A Flask "g" object for
FastAPI" (https://link.segmentfault.com/?enc=WywI323opcccPqXKpikoKA%3D%3D.4%2BhF8jgDwJyTI7jxENMj70q98kkvEPlyvae8FpTBmQH2J7NW%2B%2Fiko8BiNMnXZqOwMbB0yBVty1oofhTAe%2FeAKA%3D%3D)
如果你不知道什么是 contextvars,就去看: "contextvars模块到底是做什么的?" (https://link.segmentfault.com/?enc=9SwgMlvSrAX8fZiY3wQRgg%3D%3D.X7XXGHJg%2FJkWUhDrdnwKXJQHqpQYV3TGfJ5KZqoUU5L4xIyOdVNPHap3xPo1BH%2BcP6b8QtKfHnbwzAOXCiaqBA%3D%3D)
回龙叫不醒
window.open跳转到http的网站为啥是空白的但是https的就是正常?
在.vue页面中使用 window.open 方法跳转到 http 网站时出现空白的情况,但是跳转到 https 网站却正常的
回龙叫不醒
CNN输入层数据维度问题?
conv2d 需要至少 4 维,这里加了一维后也还不够
回龙叫不醒
如何判断 k8s 的 OOMKilled 是因为 node 内存不足从而 kill pod,还是因为 pod 本身申请的内存超过了 limt 声明限制而被kill呢?
一个曾经用过的方案:在 k8s 加一个监控,可以没有 pod 的内存使用变化曲线,以及 node
的总内存占用变化曲线。挂了之后,看下挂的时候两者内存大概都用了多少基本就知道了。监控上还可以加报警,就是内存使用达到某一个阈值就发个邮件,或者发个短信(如果用接口的话)。
***
说曾经,是因为现在我不需要去管理 k8s 了。
回龙叫不醒
分享的小程序页面打开没办法跳转授权页面?
微信小程序,下面的逻辑是如果是微信小程序,直接跳转到wxauthmp页面,也就是授权的页面,我打开打开小程序没有问题,但是如果是我分享的小程序的首页,就没办法跳转,一直在页面,而且显示加载的提示
//#ifndef H5
console.log('微信小程序授权==============================');
next({
name: 'wxauthmp',
params: {
msg: '小程序未授权跳转到授权页面'
},
NAVTYPE: 'push'
});
return;
//#endif
而且我是调试面板发现:如果是正常的打开小程序这里显示navigageTo
"1699253062161.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241126/eb97569adb5895ed6ac6fa97e2fd7ac0.png)
如果是打开的分享的小程序首页,显示的是下面的:
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241126/47e33e25f5e47269f59dfd18a96a52ef.png)
有人遇到过这样的问题吗?
回龙叫不醒
echarts的柱状图x轴标签倾斜时不居中怎么解决?
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241124/5f061ee1891945640572847e191c7ddc.png)
回龙叫不醒
vue-cli脚手架不支持pnpm安装?
vue-cli脚手架不支持pnpm安装的吗?最近卸载了脚手架4.x版本,我想使用pnpm安装vue-cli发现貌似是不支持使用pnpm来安装的啊,我看官网也没用说可以支持使用pnpm来安装脚手架。是不行?
回龙叫不醒
使用webpack4将vue2项目打包成lib会进行tree-shaking吗?
如题,我现在想将我的一个vue2项目用webpack在生成模式下打包成lib,libraryTarget设置为umd,入口文件就是把我的所有业务组件分别导入然后通过export
default导出,如果是普通打包的话,我知道生产模式下webpack4会默认启用tree-shaking相关配置,但是如果打包成lib的话还会进行tree-shaking吗我不太确定,有没有大佬解惑下~
回龙叫不醒
AMH的日志文件到底是哪个文件夹呢?
**远程备份的时候的日志存放文件 =?
**FTP日志存放文件 = ?
网站日志存放文件 = ?
PHPMYADMIN 这个配置文件夹 = ?
能告知一下吗?
另外用阿里香港VPS连接腾讯国内的FTP就总是连接不上,端口都打开了,防火墙也加了白名单。
用被动模式就可以连接上,但是备份完了又不上传文件,这是我哪里操作不对了?AMH老大可以分析一下不?
国内连接腾讯的FTP就可以。
回龙叫不醒
在做正方体时,perspective透视强度的设置问题?
在图形学中,透视强度通常由透视投影矩阵中的透视参数控制。这个参数通常称为透视投影矩阵的焦距(focal length)或透视深度(perspective
depth)。
透视投影矩阵中的透视参数通常与观察者到投影平面的距离相关。当你改变正方体的长宽时,观察者到投影平面的距离也会影响透视效果。
一般来说,你可以根据透视投影的数学公式来调整透视强度。透视投影的公式通常涉及到焦距、视场角等参数,这些参数的值会随着场景的变化而变化,需要一些实验和调整。
回龙叫不醒
跪求指导,局域网网站搭建完成后不能正确展示页面模块中文件?
你这描述不知如何回答。以下为建议
* 直接按内网地址访问,内部的那些页面。先搞定这一步,也就是确定 如"绩效考核.html"的具体内网URL地址。
* 然后 改一下"redirectTo"应该就可以了
***
"局域网内其他电脑登陆时能正确显示页面"
理论上,你是已经知道了内网地址,就是IIS服务的那个电脑的IP,如"192.168.2.138"。其他局域网用户可以访问
"http://192.168.2.138:3000/"看到页面。
你的描述可以看到登录页,那么其他页面应该也类似。如"http://192.168.2.138:3000/绩效考核.html"
回龙叫不醒
渲染出来的标签 怎么添加@click ?
可以考虑使用JSX来处理,然后就正常写 " {}}>" 绑定事件就好了。
"渲染函数 & JSX | Vue.js" (https://link.segmentfault.com/?enc=HwFCUBuIRhW8Hjr2YXsZVQ%3D%3D.HObFUSPmVEpgbALs0691m82uZ4czETf3H2xnySZiYW6Ea6e48nFzimua8xaazRojVi7ODGA8SBvIrKnqg2EBCA%3D%3D)
***
具体可以借鉴 "AntD Vue Pro" 早期版本的思路 👇
"src/components/Menu/SideMenu.vue at v2 · vueComponent/ant-design-vue-pro" (https://link.segmentfault.com/?enc=%2FZd4jbPFeso4EXkKV%2BsfHg%3D%3D.ZqhtQSpC%2F34Lnw%2FHvp9XgTAtCC3w7Yz2G%2B%2F48JYeKxd0kqzhkemqjjLtt5egwRyJa3LAQfVqaDyrgYyE3FKk%2BpOxzOEUNu8x9UCkAlzGTPI7pvxNlJ0PHHOP8oj6BI0%2B)
"src/components/Menu/menu.js at v2 · vueComponent/ant-design-vue-pro" (https://link.segmentfault.com/?enc=Bi5vUuTQ8IU1WQAakdocZA%3D%3D.DFKY%2Bih2ZbBjSsYCpkzfFUugAKCv96UEDqoCQ9fGChuYKgjTQ48Sruh06RNTxtnkDDbUPh8gizunsLjRRvgJSFRZlOWQK8y0ICGDNZ88ZfknbIuCdTUxJtYEwKsVSMDb)
回龙叫不醒
有没有其他方法实现特定样式的音频控件?
audio的样式是否能改成这样的?
有没有别的办法可以改成这种样式的音频控件,audio好像没法改成这中,有别的方法吗
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241112/12e5d152e08a127e1cc7d0e072de8e93.png)
回龙叫不醒
Vue3 在标签里面用ref获取DOM对象一直为null?
uni-app中vue3 使用ref获取dom对象,获取不到
"image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241031/8533ba4b028a7440e4b15200d04c0188.png)
myButton.value一直为null,不知道什么原因,求助
试过nextTick,setTimeout都没用。
回龙叫不醒
vue3中computed的如下使用方式是否有不妥?
本质上来说这样用没什么问题,但更好的方式是直接在 "pinia" 中定义成一个 "getter",在外部直接访问即可,也就不需要先定义在 "render function" 外部,又怕丢失响应性包一层 "computed" 了
// store
const store = defineStore('store', {
state: ...,
getter: {
currentData: (state) => state[`curr_${props.name}_data`].children
},
actions: ...
})
回龙叫不醒
ThinkPHP6 无法获取到 URL 参数问题?
改成这样试试。
location / {
try_files $uri $uri/ /index.php$uri$is_args$query_string;
}
* "URL 访问" (https://link.segmentfault.com/?enc=fpO%2BDcEeN569n2fjzRjVZg%3D%3D.TPLylqnwJTsBmeB12pYXNB6q3UPdrAySJWacmn1dlu6eDhfqHQcIoIjhnfdr5dub1GcnyWD9fh9YFzKXHLkr43XliiWS8BR7op7oQfxb8bR%2BUYYMlMQ9%2Ft0jMxT%2Fu4y%2Foe6NxTe%2FyXPyLniWmCLkFpEra8AYDOY981wNinoCCJ2VAm%2B5bXgdWJJy7c%2BecMtSf1Oa%2FlLgxLjcH1av%2B3uC1A%3D%3D)
* "弄清楚thinkphp的nginx配置问题" (https://link.segmentfault.com/?enc=ebXcmxoEgtD%2F%2BKZWKJR52g%3D%3D.k6FZwxrgFXeX5SCfmdSo%2BfNNW4CFSQvAYVrYrB%2Boi9GVcZced4cH%2BEobdRdYjdqUoNHxjCQUZ0X1QBKHTSWk8%2FbO%2B%2Fi9neBgUrFZakXGDzBmZWO3f1CZdHfs3p%2Fq2gDMQmUs0tVGSr0aHrRE9u%2Fm9Q%3D%3D)
回龙叫不醒
如何使执行build:ceshi打出的包与执行build:production, 打出的包一致?
".env.ceshi" 的开头加上 "NODE_ENV = production" 就可以了
一般来说是这样的:
# 测试环境配置
# 编译模式
NODE_ENV = production
BABEL_ENV = production
# 部署目录
VUE_APP_PUBLIC_PATH = /
# 接口地址
VUE_APP_API_BASE = xxxxx
# 代理地址
VUE_APP_API_PROXY = xxxxx
也可以用 "cross-env" 在 "package.json" 的执行的脚本中指定编译模式。但是直接修改 ".env" 文件就好了,多个包多个麻烦。
回龙叫不醒
vue3+element-plus使用分页table,当多页时,如何在跨页切换时保留其他页已勾选项的勾选状态?
vue3+element-plus使用分页table,当数据多页时,如何在跨页切换时保留其他页已勾选项的勾选状态?
例如:多页下勾选,第一页勾选3条,第二页勾选2条,返回第一页,依旧显示勾选的3条(前提是第一页中仍然有该3条数据)
回龙叫不醒
servelet与springboot?
servlet和springboot的主要应用的地方?
springboot项目是简单了很多,但是感觉不易去理解
怎么很好的区别应用
回龙叫不醒
spring jpa 连表重复 join 如何解决?
"UserEntity"
@Data
@Accessors(chain = true)
@Entity
@Table(name = "user")
public class UserEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
@OneToOne(mappedBy = "user", fetch = FetchType.LAZY)
@JsonManagedReference
private UserArchiveEntity userArchive;
}
"UserArchiveEntity"
@Data
@Accessors(chain = true)
@Entity
@Table(name = "user_archive")
public class UserArchiveEntity {
@Id
@Column(name = "user_id")
private Long userId = 0L;
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "user_id", insertable = false, updatable = false)
// 从属关系:从;一定要加这个,避免json序列化循环引用导致报错
@JsonBackReference
private UserEntity user;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "nation_id", insertable = false, updatable = false)
private NationEntity nation;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "industry_id", insertable = false, updatable = false)
private IndustryEntity industry;
}
"UserRepository"
@Repository
public interface UserRepository extends JpaRepository, JpaSpecificationExecutor {
@EntityGraph(attributePaths = {"userArchive", "userArchive.nation", "userArchive.industry"})
@NotNull
@Override
Page findAll(@NotNull Specification specification, @NotNull Pageable pageable);
我的查询如下:
public List recommend(int size) throws Exception {
UserEntity userEntity = UserContext.get();
Optional optionalUserArchiveEntity = this.userArchiveRepository.findByUserId(userEntity.getId());
if (optionalUserArchiveEntity.isEmpty()) {
throw new Exception("用户档案记录不存在");
}
UserArchiveEntity userArchiveEntity = optionalUserArchiveEntity.get();
Integer gender = userArchiveEntity.getGender();
Integer judgeGender = gender == UserArchiveEntity.GENDER_MALE ? UserArchiveEntity.GENDER_FEMALE : UserArchiveEntity.GENDER_MALE;
Specification specification = (root, query, criteriaBuilder) -> {
Predicate predicate = criteriaBuilder.conjunction();
Join userArchiveEntityJoin = root.join("userArchive");
return predicate;
};
Sort sort = Sort.by(Sort.Direction.DESC, "infoCompletedRatio");
Pageable pageable = PageRequest.of(0, size, sort);
return this.userRepository.findAll(specification, pageable).getContent();
}
出现的问题:
1. 上述代码生成的sql针对 "userArchive" 会 "left join" 两次!即 "user left join userarchive on xxx left join userarchive on xxx left join nation on xx on left join industry on xx",该如何避免重复 "join"
2. "findAll" 方法针对不同的业务场景关联的实体要求不一样;但是 spring jpa 没法声明方法签名一致的方法,也没法随意声明不同名称的方法(需要符合 spring jpa 的规范名称才会被正确解析),且由于要支持动态条件查询,必须要有 specification 这种 criterial 标准api 。该如何针对不同业务场景实现不同的模型关联?
无
回龙叫不醒
为什么会编译出错,代码逻辑存在什么问题?
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241014/6f28bc81fbfc4d9821f809e3d65ed6da.png)
这样写有什么问题?
回龙叫不醒
vue自定义loader运行报错?
代码微调了下,不报错了
1、自定义的loader要在vue-loader之前
2、loader的链式处理依赖了一个执行顺序,要确保经过所有的loader之后生成一个带module.exports
的js字符串代码文件;自定义的loader只是中间过程,直接返回内容交给vue-loader处理,不需要module.exports
const { defineConfig } = require('@vue/cli-service')
const path = require('path')
// const { VueLoaderPlugin } = require('vue-loader')
module.exports = defineConfig({
transpileDependencies: true,
chainWebpack: config => {
config.module
.rule('vue')
// .test(/\.vue$/)
.use('vue-loader')
.loader('vue-loader')
.end()
.use('my-loader')
.loader(path.resolve(__dirname, './my-loader.js'))
.before('vue-loader')
.end()
}
})
const fs = require('fs');
const path = require('path');
module.exports = function (content) {
var output = ''
var moudle = this.resource.split('\\src\\')[1]
console.log(moudle)
var dir = moudle.replace(/[?&=]/g, '_')
var type = 'js'
if (moudle.includes('type=style')) {
type = 'css'
}
if (moudle.includes('type=template')) {
type = 'html'
}
if (type == 'html') {
let returnContent = content.replace(/]*)>/g // tmp
let contentArr = returnContent.split('\n')
let resultArr = contentArr.map((item, index) => {
if (regInput.test(item)) {
item = item.replace(/
回龙叫不醒
请问vue+Electron打包exe后页面路径没有指向vue,如何解决?
经尝试是我一直运行着 "npm run serve" 影响了打包
回龙叫不醒
Vue3与Element Plus结合下如何调整El-Table选择框为心形?
自定义一列作为选择列,不使用官方提供的选择列
"https://element-plus.run/#eyJzcmMvQXBwLnZ1ZSI6Ijx0ZW1wbGF0ZT5..." (https://link.segmentfault.com/?enc=Bjo599d0B1hOqT9G3BFcLg%3D%3D.KtwQOOlMeWVIN%2B%2BlIC5gd%2Bt16BL0Jaid2lNixZ9jMyBnfkKi3gPNkHCgc8Hnhd0AKLqw3cZvh1tGw2PPzLyfqhFoDHPCSqEkgt8bItQa8GJOGKIAQtIHSBbqPKKNUkDI01CDTlXU71Cf6UdMJ9vjGOLATf%2FTSeHHXw7PsKiUD06BGz0XP80PsSbNOIchcVwupAFwXGBa%2Bl%2Bsi1ccwz1qfgXSVZpC5vhCxOx%2BkY0bbKY%2FovlYjuVRHEdH8ybFv0BlmC9Asv7PHfl%2FoNLSw2l7fPefciunJg%2Bcc74VRn0MlzKddxzziO4d8QpXJ9xf0qzTQO9Fu%2F4G0qJ0qgOn0902GnuBjx%2FPRQ72ZCVFELLzcK9LUct33n6YqdR%2FnALHjeW5fH%2F%2BRVJfjcvRdfryXsbSMCfxvErMEi%2FQqFV6LvBvvekIRrW%2FCmWUoLoMPLzJPNxgej3iz1S%2F7HIXjH9nf6NKf9Zr6AmXYkLiETV24YLmEOznLACDCIwOKBLWuQdUSGDyMXdENbNtk9Y82DLtAY1AyVT6qF8mFRgDDATSoMy1iCxEV59IO%2FQAQz%2FAtHLZ8RR7R%2BrZQla%2B8VqVA7ZVGSr7tnxe50vf5PdKHiMP9I%2Fm8%2FhdsGd9GSKVTkKFfrkJ2srGK2mxcd%2BYYolM%2BXv0rkHhsqQW%2FKqk585lGZWIEBjKBKz27NTZHAGU05R4N8iI4oqwwzTAszGliMbCZVnasbpcYLoTqPj9gXTm%2BK4twUq13l2jAHAtvocl1wK7FKfeHQeM3WFAtUGGjNB7%2B5u%2B9KqN22a1ZxXx%2BinyK2IwqOQjhhEpikDCR5zwEtVO1Lvpgczp%2FksvlzqKGCtpBqHyYKbngsm%2BUoImNGy5LMzT84ZHoEvzN5xGePulDdUmh7HTLO3opYmFO5FQs80rRLJbgwZ8uCTXtbCIlGGF7QwlplWjbiMTTl6LJ1TcloLUDfTw%2Bw%2BQKuNkbbc4UGZqZnlbt9wmYPW8hDWO4lIF8ORRK2TVjUMLocXLI4EynndATVZgFwFKn2ENbCG4i4aZwQfTJm70CJEcT1ZmNtLmeG6mcEie6KftZloXWfVG%2BW%2FW4hNoE%2BVNbigtpW3ePQT6DKlSbfFmuDsb0Na5szKDo%2B5ZDW4GHUljqi%2FsUCSHLxt%2BrZvNRGEgNjioLz1Ivzjbn%2BD7vMosH6Sdr9%2FnwRBVJ%2F46R6Xpi1dMCuQqW2q34ceGaQCZ44MprspOlTtb1N3nhUNycIE%2BjYbkCAKMaX6nRcOdQoa7h2ifEsl%2BYaGkW6N3eCfFtPfby%2FamPmAK25YH447RPRAarqygD9nxM66ZpD1iz2chqqg0U3VBNpAIXw18cc10YO8%2BzZko5nL2A7oC6SzgR%2B1met64uL8UPXNBMYziyD0yDu0o%2FjSCHAo0mIebAoI7myGiP1U4flb9LBsXDT6vuuv9FilsyGKwAFsEE0v0bQwL5JEUzzdt4zebCJ5zCh%2BDGXUqAqvBNwi7ljggsGcUwjonYiQIXjjbCCdqotYm3Xnv%2FmaC1A%2F4nbVJZ1Mn5ajnT%2B8yiMWbWw5NZwRyNzIv7DhBRHQCWT1g4LrQypS9A8vtjs5OX6BjFPjcJouSdo92ZkHLZ6drleLeu7wzpkq8bkvwEGrB7E5FZR6YZzkILFGeGxXs0pqJZHDUz5cIXMwc7uSy14qifzwV2HD3wqeq5YHEOgFEviEn%2BXMYU%2BIapYWAkz03M0fJtVbUZxEfaytmyFccM4bsGf6vDXGXZ%2Bao8SaUBOFIuxQAMICF%2FVGM%2FRpCCzzorYGYRVRjg%2FZCLsneBt%2FEDR%2BVXzHQIA1ej9wzvobfMSpiHo1%2BAiqR5kn1N5LiHsFjx6fVKDPT1M1psu4j%2BYRIA5hMyoYRShDEuB7yD7duQh%2Fi4iFj9VKgU9SkbaKOc74zrdJryrOyq4lr2xAR8VHFh9JQ%2FTehAlwU%2BafzSbOeBfkPb5uXzM8Yv2VKTu8t1qwRqL297aqJk1sq986nRanIR18CmEZ07NvShZ40HtmHjoBnv1b%2Fci4x7AExrpwSH7VYIf7DRn89DSfgwv5BFnxyC6H7CFXk5WA3ky6FVbFCoq%2FDmI7hRoQgIChPAZVlKjx%2BZ%2FhAvmhSW6TfcGeCpaaYG2Fl3TFSyD3n0xTKF6UyuJx91Kw3ReM6f0pqO3RDICv86fr5%2BTTkm7rVBgQ8S0l4XM1m59HSeP3ZW9WGg7hBC3szbXNaROn2QkRFfPlJO%2BmAFPUVcY0rcghiQXTknC9VTzI5WIO1%2BhH0Kwdw0sZhkTQ17DPIJxTGvVNaAysQuOtchoejmhPGAbbaOhyF35sQ%2FLUvVX28tqd%2Fn7%2FX%2BbGsXzPTVU5RyL4A7kfvu8nprmfjLhZEJK%2F63OCUNopVOKUoyf0nbZn69WZnQC5f7mWuMCseaNxqoXPcG7sQ%2BfsYKA%2BEu5iS9%2FvvwGUdMi59i0jjJBWpZG7D2WaoRO2yHgDXdD3hZQYQqxZpH%2Fbyz4UwOXNkSk8D%2ByhfR869rgV0CwQwUtdfn%2BfiLX9t%2FSgqDZ1ejVOqSZZoySAbmU50wnEhnOoN4CwmbYU%2FwF7CeW5muWmJjTvJx42rGYqaVjTtPBzi4tBTuoqWLWaZ49o8%2B9gf8GAbpTWFQ3JpIceSzd2gv1V%2BPIGSzcrMb9yWpNMGbRRVQ7nX72NebDyYM8z3efnCqKYb%2BVOHakgj8kXrzNNYv90xLubhAjEU5zWZamfagoS6JmtcgvtGwQNGq1Ymhwwgh8EdGZ0%2BSfSnmf5NDK8Cm%2FOl4bzs3PwHoGCfryFdV1PkdAQ4AiPL3YgTTLheFW0N4e1SLHdpEktBtigsEmKMv3OyAFqEZ4FbOtZgBAZDZCf3Z6nbPZwIUR2tsAjKWU7lVNr6fq6fz1AmAZS%2BNxO3m4qxQQEzdHZE0A%2FqL3aQUi%2BP5Vd9ahGeRrc%2Bdt4oVoJ0YlYc5zU5TJxs5qG0wm594oUlxNUfm%2BzB2vVRot3a%2BxMp12SptgXWrptRdkeNNk78ovuIbvBlUj5Alh66uwWPZ004rMoOxgOMS9xYyAqQ9vCkSMz0kt7J5RLwcss%2BLGUZOqlc7gYP%2Bl2o8leR%2BjSNKtniU0hgJ4pRM0AEqlAwNgifesbdP8a0HhiFHDpTLyJmrX5I0KgjiiEEmBlMQBRmDiMpYpy11RJPatqfpzRFBPqSiVRA3x8bta2bwsbrA2%2B5eatt9fEeLEAK5jSjpEd0zPzBB9DX0HgD9h%2Bh%2BEcdD89ITkJvQiADAeQf2Kk0hDp%2FRq8YLez7dsJyEi%2BTbkuSYxXMFX108ZXUbHtMjV6ys9%2FimJBK2%2BKWGUN6hBpXC3A0HzSy%2FHRCjlkHoYRqEU0mmr%2BL80AffNsF8l2k3A%2FAfn9ScsC2oj6nM7w5kBSg%2BjO%2FRIYiN3uvnYwdInHDPE%2Ft4tGaLVv1RToBmG%2FQBj8QX4aTMdwxe7%2FS%2F3EMiQuy0ptxfHO1N5K5rRdf54wwc1uFjpMrR4uXMBvrhHiWZlP3h4UX6V%2F4BZl6g%2BNnyq89zaA6mBkvUCVrgmOslZW%2BaCVZGlt7ljVo5OoIuWo2NjyPrFT9KABFFSv4seeN%2BHWv6x9I%2FlfNxQeypSB6vdwaFu1EsDalk6AEPZfaBYM6vOyCkCnysMvuV1Fky6kf6cTtD9eNh6kuGPZZbTxGdb97mvA25l6Jm%2BKeq03gm8CAGn9Q58dmfJ1N7csx1JBWjSMRl5O5Q%2FE%3D)
补充点击功能
"https://element-plus.run/#eyJzcmMvQXBwLnZ1ZSI6Ijx0ZW1wbGF0ZT5..." (https://link.segmentfault.com/?enc=2spxabmNPuZGnCLldmEAaQ%3D%3D.GDW0hhj43ylMup0NBLMtyYLsR1cRRoctwT2pMnkJADU9zyMOgQcBIh8Y%2BRf1imYuVbXqQ7zMst%2FhcPFT80ut5nQfdRU0l29cSjliLMbXao5GahvJ3i3k1kuQaCICQXlUml8vTq8XDbqRXkfMwDh4zPmBfkaf4sFewQeSeXwDLVqcAR26fzvEcuBRzwUKM7aBNXTSJQglfCCajwSaV5KMGQZnKMgB8YaRImhMH96EYAtGLxq223Ohoy8NFZjLlTcHdkjDp%2BMKqB2qPZV7o1Lk%2FF0ywrWFIskrdMYfrT%2Bio65yS2W4qqV6UqiRfqw5fcARl9naZOuyRUocZu76FotZAnThqLkNkDEfgHzT7iXPwLzRAX0cLQRX4vjTVBbSUHEyzd9xhjxwCgxgL5VPeIi5iga8JsKd8Sj2qz31CxkbVB0DwS9cZxzRJrvvu422L%2FoLcvKQCioj2a95B8rv8qJJhSPswCr10QG4pKGpMRji3sxwoTzQaLgtDEHbMADVYA02h80RfVUa73YdGuzBJ%2FblKKhxyeqhb5fn%2FsVmnwWX3xU5DmnYo1R2wtwFOf%2FKNFS6w5NZQNWYUj05YmHc0HbC23%2B5BZ%2BnQKZPKXdKGCXxF6nKJo9j0A2qrN0x%2BXRJo4WseOJnOEWnnl%2BMCiRPXJN3Rtmy6VipOppqfI6cNlzKeFRZOeoPr0Ua72Cnjj7ZkqqrwW0dRHRbZCBP2avKBZrnLkHyHQzbYUiPniovgrlTyeCNsM8pu4hw1WO4XFZZZOneEhw5DYsdzxBSZAkFCZ22mO76WYAkgw5%2FlKlHq9x3x9ImrDZMD0dxxLH%2BJ2z4QjYpp%2BWUVSvXAEpQK0gTwbUa9xiP7WKA262Z53KBuFkW6%2FXQtbWRi3AZ8x6fu%2FO%2BTwgGwodBRXjnO1yyjpSjLfe%2FPJlTK%2FPaQY21QAwFWvENFNkQISqNYZxz%2B5iQ%2BISj3AfAfz5jT1RpQC%2BXx3%2BF5niqs8o825Dh6QkR6CuXYnJ3yg%2F71XGt97n3il%2BxdlPQIRdE0Unyp9Av%2FEwjBM%2BWtPPUwi8SRg4%2FXgxt7SjWG%2B2Y4sPR1Yl8aPAEaGjMXof7LAaftiFYdi8haBGIeMoDKws%2Fgk7EDr1ouxBl7aQ%2Fz70yIiC9QPq0wxYGL7XNXEhnXSCpaWV5foIge%2Fdf%2FE16hJ9m6iV5LZPRGAwKEn93pvHctZRXExiLYAtooDXBjNQeinb75Ihg90c%2BlhPVLEsH5VipRMKfD1fXB4SuFFE6XcXeZJquljpIVQF4Zos7lZv2T759tJX%2BzWJabim7ShqLEpI8bJSzSBFaAbfbiaagFa0VGz9B2s5sjTU2Szip%2FGXog0AqfqLgdQm4o%2FSvvSkUwevww4vp8I5EFYOthp2NM3yJTMB1SlIWA0zhS4DpCRFsA8%2FFJj13CGABt0BVX3oWRon%2Bi56i3u8PzW0YFivk1fzdkwBj7DKee3ctU7Tuso7%2FYe8PeHq3K7oLKVgDC7uNvwajQCiz%2F1kAGU6bZHNBZmP5msJcxiC34oE42NCpARaSmFHIkXLleJ2trlcCeIpklI1GEtP5B6YKU%2FzAyOX3gAedRzZmVeNT4G5yNSQG%2F1lP68w6zNDzMk7eSnLdk%2Fe34UAK70ed37ekUGg6CCagNRNCiWJEU4niNeTgicmyuDmE%2FT5l4YvTXuNZTKJVDBhwAf83nfi88vCviGy0uDwOHnDZiPGZ3tHsr0%2FD5qQWhOCWpZ0MmXQ84z9300roKg9s%2BdcLuXvFkkDTbhwmVPFL9fbRxgakEU5WJmmkr7dU0Jc9iD%2FQQg6R34cm9ULD7hBb2YjpNLwaUEyXIcKNeCTY2%2Fpo3mn92C9CQwXhfvfOWaxKhEtNeAV5TW%2Bb1eNvvuOKYi7o0VDHo8MtKBbuRXu0WaZBn99%2BX%2F0BrVZE6gHVKyVKXYiTHk%2BabTyVBah5vBiyCA1ThYiGWnBwtSKW5gpF%2BmqZni5AlXmT1ys9Wmj2jpSdch0gJfVLFL9SIKaMr5JJUOZMO5sQYOm8Mhc7qjE1jibm4lsKW9fBcmC9zmPiiS7CtwvdLz3Zs%2BUg3zQ8EixRvSmv6z6YKRHmde0Bvx4FghUjS%2BblEp%2FC9W%2FMVFC4yrCWlEhWOE0zndV1TMowMgiPUwFsMpbREOQVKg1MmG2brluq3YHnoq1GTLhknCqGb8HHukXUqXV%2FT%2F1xQdKrDfSj8GgYujR%2B%2BFHgxcjQA8CNFkbdHfdTExC6gb7KekzMrZQo4WGq0f0qBusFpERHvFIkg4InKx00gNWdIFPqzvteLOTohzv4E%2F1qRW%2FttW6jaI8%2Bs2AZ4xqYAyjbUZ%2FqzNELsLpSiGv52CCnHuIJS7zKK713GX26uWWw%2FbIP%2FaaKHUPwvaPcmYosIwB8RdjlxT4i3xVQoKqw1rXjU3K0WcL6voJDubUgGisnnBRvNezD70fO9U%2FTVpWuzHuqZBMPB5UHDDLcjQw39IzM3KMrAamFIzUH3KWJnI0B%2FDmwMNmBTDoA9N7gpcWFSQ%2B3sTdnVFLbMqsKCUi8B7CvhOhXYW%2BVOlm0BAHWJsuVDAhZSSyIrpixFY0OZG%2BBxQVkvlEWa%2FLF55X8lX7lIizW77sGlsEzn2rJU6JMCR8OGciYDZk1QdX7czsGojMyZZbmuoIHMAjHIIjXDkYVawfsirHe7l42uk%2F40X30Xh6JIsOmJdUh4fudaSAWcVZHuebrrx13P3yHk5YYp4W6E3E3hvfle1fj0uRb8VMdWo7lOsSetlmQsVOUU9WXCFfEAttsaDz%2F%2BwGq62yON%2BTFbl20TyaVa6z6Z03dOkiloCJWcgmKeOzqzzTJopfT2aFsXYGaNCvpC7UxaYw4VuygGN09GFrc8xv%2FhiC0YnvDdjcB2LW48YOQa%2FwlBNx%2B36lZTBYmUq%2FRZChSwqgASsFFv8lTVNxeCAv0N6GkDVmymmzByH%2BXe8kQap2GqmTLs97Went4IoUwYSRlHjQD6FTuNvTJcs2Q3CaAFkbyDNCenUrwd3r6jCap0Z10Rr0Xo3%2BgCCMBq%2BtPo6m3fdnCNPdDSdQ1514leeZ6vOurSOXPtbcCVNJ51ebYLQEhSZatg8gMzhU%2BF1UjvjuIfJJwvckqRyLUov3iHPjRzylZdFRuaPZUwXzYCBMC1xweNBTPvuIWlC86w8RfjjAAqjmuSwOHTF9SQWVdLt7HzuolsIOG99pY6Qezapj2QC%2BIUD3arv4TKnzQOFmhFRvu48voopeGHANyWK7vihQjUClCCGFounj9cCo%2Fa28C%2FdQ2dVlKDoYp6hycWzV6MyXnMo%2BZKjupJadgl17Q4fdi12glRz3vICe4BxesP3MRZEeo7l2ePlNdERzl2UI0tICP%2FcqDK05e3kz38DOPLktsGk1PY342roz4VBCLBLVY4FrgofgQNwGKw9evF4TzHcmgtI4%2BkuP8h4aEHoBnHF90ne1sJ%2F702XEWq3ny%2B9deUK3QbVE8V2GajTAV4mgRvtQc9pjIhkan%2BrYdPGof6dqwwhhHWDovdc%2F6tOL1L4G9jeXxZ7cV0tWnoJWugPsIOjh0aMUsWP6SuM6Zh8Mh%2Bw2eezm%2B1FHzCFDwh%2B%2FqFywl9KOraI5qN1u7lMmQhbYNIvMukakaZ4AaaLdoa11d9nGuf6QkqX%2F8Exq%2BFGV5N1kxM%2FNnw6Gz3%2FPWAsBFlf4Q4uX8%2Fch4TKFrgj%2B4QZitDq7OIV2%2FO17RuvItBQQRyj1w9niS65UNZBasE8uUbFeTy8%2FCX%2FBYEN61wSZ1rNMgy7L4z%2FXyhRrI9%2Fh6FwTkH%2BpyZ2y5vACALK9jhElkfh3BT%2BQ%2BVFEDyKWUUdNPjWQipw%2FGp1MuCNlQtcy%2F4IWAw2ilKJZfNAmgAPpu8zqJC4kz8CYjLeI9j%2BRke53kvlANXcHRmqLS%2FL922FOcQR3j6F4gj%2FwTeRNXzmR99omC4vutBM0XNocmZ9fvUFmiGpgmg2Nt%2BS6jT26%2F2UESeDi5Sn9pGE8ilyfDdZ1o9a8bqGEe26%2BITaIbsrS5q71gvLNtwrDt97V1rV5aswV3WFFlfmBPuANE%2BAobqhbKbk%2Bqph77HFwLNb7uwdHYTc6vVOO%2Fjqy%2BNEKNhZJavt3zbAMoblVAO3lFsYEg2utotSs4EZUvgeLrQ9vU9EiRS2bhUJEuArVB7cqIaeYdMUFO475vkHhBti9HtxVgd1j98BRfSfFjdQYJ95MNoWVt5WbqO%2FiouVAMXD61PxA5Z0%2FfHaNo0KOXCU6uYuFEJHaUQar3%2FmwZHkULYF7wIx8s8N%2FiE7Rdc2Zx3nJhBe2Q1l16Sj9G12qGMWBpwsSrOG%2Bc8veyqjs6aoJrwNgDsvd74MYQyyLGnnGqa43Y%2FEClx3uCFGJAMqXyImGyK2%2BP5LZJmgtEl3MREagpGUCvha41rop913r4DAlccz4tkxLwxhsYyxlsgwnXRV2036BUSZoS38FqYmPvhBU4ZQn0RvMiDTsMXKYtNBENZyWfL13ALt1Rf%2FkL02J8Hogi5zaYZ0Uy4HtPtBmtdhb35Q2nfk7lctXq1WqUCxyA8eDOXxIYfNdAqXERy8ncpb1aI7DAvAkbd8gmH%2BTEtNosOVq4niWBcAbMNXbvceGjyBH3dCjm%2FXiKU3O7No%2FWa7T%2BQsha)
回龙叫不醒
如何在前端项目中简单优雅的使用 svg 图标并且适应排版?
如何在前端项目中简单优雅的使用 svg 图标并且适应排版?
我 clone 了一个项目改改改
"https://github.com/zauberzeug/nicegui" (https://link.segmentfault.com/?enc=MxL2tFafDecgXepXsXbQlw%3D%3D.hGZ0e4eRLzI%2BcztWVlh%2BPFxQMvo8Nnxd3vXTRVAG2jAnkuwHdvtSLsuqli4juEW7)
"图片.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241013/fab7df2701c8a9011d9c9f8108ef3dd0.png)
原版项目右上角是一个 github
的图标:"https://github.com/zauberzeug/nicegui/blob/main/website/static/github.svg" (https://link.segmentfault.com/?enc=8zRZYLtnmbWt8r6fXQB72g%3D%3D.mR8YkosYrX5jLNPxht2YNLAi8Rbe6fOwEFr0AVbVME%2BrCvtabfGU3NHsOmSF7AVFdp1IukkJZ6rMjyoHPWcpdtxgZeDLGX80CRo8j3f3RuE%3D)
因为我的项目是 gitlab 的,所以我想把 github.svg 改成 gitlab.svg
所以我去 aliyun 的 icon 站点找了一个 gitlab
图标:"https://www.iconfont.cn/search/index?searchType=icon&q=gitlab%20" (https://link.segmentfault.com/?enc=tD93qYO3mg8IxHjYHEFiQA%3D%3D.GBFqnWiWVRYaQB6eBm278bv2KFgwAHu9oSdZn4wz%2Bi%2FS6mM8V1TZTezIffds3ZfoK7BWzoRfA10s8bBFjdBWdgX0OGAYc83%2FR2G31W08Z7I%3D)
并且复制了它的 svg 代码
"图片.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241013/404946e33053b82993808f5ca8f8fb39.png)
然后复制到我的项目中使用,但是这个 svg 图标变得非常的大!!!
"图片.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241013/e8ba4d18afad1cb7a002d824c756f87f.png)
我只想简单优雅的使用,最好可以无脑自适应,要怎么做呢?
回龙叫不醒
微信小程序 用canvas生成的画布,因为是wxfile:协议的临时文件,无法下载保存的手机相册?
你可以getImageInfo + saveImageToPhotosAlbum 结合使用能进行保存
wx.getImageInfo({
src: that.data.cardImg,
success(resImgInfo) {
console.log("resImgInfo", resImgInfo)
wx.saveImageToPhotosAlbum({
filePath: resImgInfo.path,
success(res) {
wx.showToast({
title: '保存成功!请打开相册查看',
icon: 'none'
})
})
}
})
回龙叫不醒
ant design react 5 暗黑主题 Menu不生效?
你可以尝试修改一下 "itemBg","darkItemBg" 应该是提供给 "Menu" 自带的 "theme" 的
回龙叫不醒
无法使用tomcat启动前端项目?
看了你的配置文件,看上去应该没问题。(另外那行配置加不加效果是一样的,tomcat会自己扫描webapps下面的目录)
比较奇怪的是,访问 "/foodie-shop" 的时候,看上去像是没有重定向到 "/foodie-shop/"。
可能是这个原因导致的 404 。默认情况下,如果访问的URL是目录,tomcat找到目录后会把请求重定向到 "/"
结尾的路径上。如果没有找到目录,tomcat会认为这个URL请求的是一个文件,所以没有进行重定向,才提示了这个404报错。
为什么没有重定向,有可能是浏览器缓存了404?刷新浏览器试试。或者手动在路径后面加个 "/",再访问一下。上面都是猜测,最好还是看看日志里面写的什么。
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241010/b47ad872ac6fe0be635254c98accde42.png)
回龙叫不醒
如何直接点击lumen的路由的控制器跳转到相关文件?
$router->group(['namespace'=>'\App\Http\Controllers','prefix' => 'api'], function () use ($router) {
$router->post('register', 'UserController@register');
$router->post('login', 'UserController@login');
$router->post('info', 'UserController@info');
$router->post('logout', 'UserController@logout');
});
laravel的路由可以使用Route::get('/user', [UserController::class, 'index']);
回龙叫不醒
Node.js 框架选型:Koa.js、Egg.js 与 Express 哪个适合深入学习 或者其他框架?
现在学习node 主要学习哪个框架比较好呢 koa.js egg.js Express?
求应该主要学习哪个 哪个生态好
回龙叫不醒
typescript 中如何推断剩余参数的类型?
在写单元测试中,我想抽象一个通用的函数,避免重复书写。函数的定义如下:
export function defineUnitTest (
name: string,
fn: (...args: any) => R,
// 这里 source 参数的类型应该对应 fn 函数的参数类型
source: any,
expected: R,
) {
it(name, () => {
expect(fn(...source)).toEqual(expected);
});
}
declare function twoSum (nums: number[], target: number): number[];
// 使用这个函数时,第三个参数的类型应该是通过第二个参数推断出来的。
defineUnitTest("some desc", twoSum, [[2, 7, 11, 15], 9], [0, 1]);
但是我不知道如果建立 fn 函数参数的类型和 source 类型之间的联系。
请问要怎么写才可以让 source 的类型等于 fn 参数类型的数组?
回龙叫不醒
vite打包依赖,希望nodejs和web都能用,怎么做到?
包中包含了 node的 fs Buffer等,如果用polyfill node 就不能用,如果用external 前端引入时会直接Buffer is not
defined
回龙叫不醒
el-radio-button自动选中的问题?
el-radio-button自动选中的问题?
代码如下:
formDesc: {
state_eq: {
layout: 24,
type: "radio-button",
on: {
// 按钮事件触发
change: (v) => {
this.handleRequest(v)
}
},
isOptions: true,
options: [
{
text: "测试",
value: 0,
label: "测试"
},
{
text: "开发部",
value: 1
},
]
},
}
},
是封装过的radio-button,尝试着label赋值测试的结果没有效果
效果如图
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241008/b7d60982b78ce390305f504d6f9a8361.png)
回龙叫不醒
前端下载/导出的excel表定制化?
背景:
日常工作中,经常会有下载excel模板和导出excel数据的需求。
xlsx是由SheetJS开发的一个处理excel文件的npm库,但是同时会有下载、导出的excel表的样式比较粗糙的问题
比如下载模板
import * as XLSX from 'xlsx';
const handleDownloadTemplate = () => {
let book = XLSX.utils.book_new();
// 实例化一个Sheet
let sheet = XLSX.utils.json_to_sheet(
[
{
'姓名1111111199999': '',
'年龄8888888': '',
'身高': ''
},
],
{
header: [
'姓名',
'年龄',
'身高'
],
},
);
// 将Sheet写入工作簿
XLSX.utils.book_append_sheet(book, sheet, 'Sheet1');
// 写入文件,直接触发浏览器的下载
XLSX.writeFile(book, 'xxxx模板.xlsx');
}
下载出来的表格比较粗糙
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241008/602488991700576d20b3a821dc57e947.png)
主要有以下问题:
1. 单元格的宽度太小,文字展示不全;
2. 如果对下载的excel有定制化的一些样式需求,就不支持了。
所以,有没有什么好的方案:前端下载、导出的excel表可以定制化。
尝试:
目前没有找到更加好的方案。
回龙叫不醒
uniapp使用echarts,tooltip中的formatter没有解析html成功,请问是为什么?
uniapp中使用echarts,在tooltip中设置formatter页面渲染成字符串了
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241005/5c63ca5cfff10a8139deffed1bce6ab2.png)
这是formatter内容:
// 工具浮窗
tooltip: {
trigger: "axis",
// 鼠标移入的轴线配置
axisPointer: {
lineStyle: {
color: "#FF8B02"
}
},
formatter: (e) => this.getCurrentDate(e)
}
getCurrentDate(params) {
let res = ""
let time = `${params[0].axisValue}`
res += time
for (let i = 0; i ${params[i].marker}
${params[i].seriesName}
${params[i].data}`
}
return res
}
奇怪的是中间那个圆点解析成功了,圆点的数据如下:
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241005/fa21d5726614ef121d1f5e2160ed76dd.png)
回龙叫不醒
threejs 柱状图如何实现渐变色,比如从红色变成蓝色?
这是material,替换下材质就行
const gradientMaterial = new THREE.ShaderMaterial({
uniforms: {
topColor: { value: new THREE.Color(0xff0000) },
bottomColor: { value: new THREE.Color(0x0000ff) },
},
vertexShader: `
varying vec3 vPosition;
void main() {
vPosition = position;
gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
}
`,
fragmentShader: `
varying vec3 vPosition;
uniform vec3 topColor;
uniform vec3 bottomColor;
void main() {
float percent = (vPosition.y + 0.5) / 2.0; // 计算当前像素点在立方体高度上的百分比
vec3 color = mix(bottomColor, topColor, percent); // 根据百分比进行颜色插值
gl_FragColor = vec4(color, 1.0); // 设置当前像素点的颜色
}
`,
});
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241002/822a78af94a514a6adb1509f7ecd8024.png)