请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

正在回答 回答被采纳积分+3

插入代码

2回答

西一凹 2024-11-19 18:58:53

同学你好,根据你提供的代码,所说的

使用import导入md5运行报错

可以总结为:
关闭electron 的 contextIsolation,即contextIsolation设置为false,导致无法使用的问题,

https://img1.sycdn.imooc.com/szimg/673c6b5009fc1af108620459.jpg

在一般项目开发中,不应该将 contextIsolation设置为false,即应将  上下文隔离   保持他的默认值或设置为true,

因为,contextIsolation为false会导致vue部分的代码并非运行在独立的 “安全环境”中,在这种情况下,

结合你上一行,将 nodeIntegration 设置为了true(集成node环境)从而导致 渲染进程只能使用 require 从 "node_modules" 加载 npm 软件包,无法使用 import xxx  from 'xxx' 来进行导入,



总结:
在一般项目中,应开启上下文隔离,关闭 node环境集成, 如果需要在 渲染进程中 调用 node、electron 的api,应该使用 preload脚本进行 调用,即
https://img1.sycdn.imooc.com/szimg/673c6ede09d38a4c09590304.jpg

这两行应该设置为这样,或直接删除这两行,让他们保持默认值,


这样,在渲染进程中就能 通过  import xxx from xxx    正确的从 "node_modules" 加载 npm 软件包。


在你的项目中就能使用  import md5 from 'js-md5' 将  "node_modules" 中的  js-md5 软件包进行导入了



0 回复 有任何疑惑可以回复我~
西一凹 2024-11-12 16:45:04

同学你好,这个问题可以先通过以下几点进行排查
1、检查 package.json 中 type 是否为  “module”,因为

1
const md5 = require('js-md5');  为 commonJs 的语法

https://img1.sycdn.imooc.com/szimg/673311820908722b12730768.jpg

2、检查 package.json 中  安装的 md5 库是否为 “js-md5”, 且是通过

1
npm install js-md5

进行安装。

https://img1.sycdn.imooc.com/szimg/6733125f093fb2a713970646.jpg


3、在 node_modules/js-md5/package.json  确认 安装版本,如果安装的版本 不是 0.8.3 且  出现了报错的情况,可以手动指定版本进行安装

1
npm install js-md5@0.8.3

https://img1.sycdn.imooc.com/szimg/6733141009cfc23f09670445.jpg

如上述均相符,但任有问题,可尝试将 node_modules 目录删除,重新执行

1
npm install

进行 所有扩展依赖的重新安装。


或通过 慕课网 git 将老师的代码下载到本地,与老师这部分代码进行 比较,看看 代码 是否有明显 差异的部分
https://img1.sycdn.imooc.com/szimg/67331577093098a404110675.jpg



0 回复 有任何疑惑可以回复我~
  • 提问者 羅小子 #1
    按照以上几点操作后,还是一样不能通过import导入
    回复 有任何疑惑可以回复我~ 2024-11-13 14:07:37
  • 西一凹 回复 提问者 羅小子 #2
    方便的话可以 加上课程官方qq群,将项目 打压缩包发到群内@我,注意,node_modules 目录 不用放入压缩包
    回复 有任何疑惑可以回复我~ 2024-11-13 15:54:31
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号