90% JS 小白都会遇到的经典问题:load ES module, set module in the package.json or use the .mjs extension

 

最近由于工作需要,对JS的加解密进行了调研,在这里我把使用的JS 模块、模块的安装方法以及运行报错的问题进行分享,由于我是JS新手,因此这也会是许多新手小白的共性问题。

使用CryptoJS进行加解密

CryptoJS是一个JavaScript的加解密的工具包。它支持多种的算法:MD5、SHA1、SHA2、SHA3、RIPEMD-160 哈希散列,进行 AES、DES、Rabbit、RC4、Triple DES 加解密。

安装crypto-js

npm install crypto-js

代码示例

在我的js 脚本中,使用crypto-js进行解密,核心代码如下:

import CryptoJS from "crypto-js";
const k = "跟研发确认的可以值";
function AES_DE(text) {
var key = CryptoJS.enc.Utf8.parse(k);
let decrypt= CryptoJS.AES.decrypt(text,key,{mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});
let result=JSON.parse(CryptoJS.enc.Utf8.stringify(decrypt).toString());
return result
}
var jsonData = AES_DE("需要进行解密的密文");
console.log(jsonData) //输出解密以后的密码

运行时报错

错误代码如下:

Warning: To load an ES module, set “type“: “module“ in the package.json or use the .mjs extension.

错误的原因就是缺少module,但是我已经明明安装了crypto-js啊?我相信这一定也是初识JS的小白同学们的共性问题!

解决方法

进入工程所在目录,然后执行 npm init, 在目录中会生成package.json 文件。package.json文件主要是用来记录这个项目的详细信息,它会将我们在项目开发中所要用到的包以及项目的各类信息记载下来。熟悉java的朋友们一下子就会想到maven工程的pom.xml,二者作用一致,这里就不多说了。

简单的解释一下:如果大家只是编写简单的js脚本(没有外部依赖的包)来了解JS的基础语法,那么无需关注package.json;但是如果大家想深入编写JS脚本,引入更为高效的第三方JS工具库,那就必须深入地了解package.json的相关内容了,详情请参考:

https://docs.npmjs.com/cli/v6/configuring-npm/package-json/

回到我的问题,如何解决:Warning: To load an ES module, set “type“: “module“ in the package.json or use the .mjs extension.

很简单!只需要两步!

1.进入工程所在目录,然后执行 npm init,生成package.json

2.在创建好的package.json 中添加"type": "module",如下图

{
"name": "js_demo",
"version": "1.0.0",
"description": "test package",
"type": "module",
"main": "demojs.js",
"scripts": {
"test": "test"
},
"author": "kevin",
"license": "ISC",
"dependencies": {
"crypto-js": "^4.1.1"
}
}

再次运行JS脚本,问题解决!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

测试开发Kevin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值