• vue3 typescript报错Can‘t resolve ‘jsonwebtoken‘和import require导入报错


    问题描述

    首先npm install jsonwebtoken -S安装jsonwebtoken ,之后写代码如下:

    //src\security\token.ts
    //导入方法1
    const jwt = require("jsonwebtoken");
    //导入方法2
    import { sign,  verify } from 'jsonwebtoken';
    //导入方法3
    import jwt  from "jsonwebtoken";
    
    const secretKey = '&*^R*G&(FRDwp4eg3'   //secret
    const expiresIn = 60;    //时效 (秒)
    
    //生成jwt
    const generateToken=(uid:string) =>{ 
        const token = jwt.sign(
            uid
        , secretKey, ()=>{return 1})
        return token
    }
     
    //解析jwt
    const verifyToken=(token:any)=> {
        return verify(token, secretKey)
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    遇到的bug(可能有记错的地方)

    1,使用方法3报错Could not find a declaration file for module ‘jsonwebtoken’

    改用方法1导入
    
    • 1

    2,eslin报错Require statement not part of import statement.

    在package.json的"eslintConfig""rules"里加上"@typescript-eslint/no-var-requires": 0
    
    • 1

    3,报错Can’t resolve ‘stream’ in 'D:\workspace\vue\vue3demo\node_modules\jws\lib’等

    npm uninstall jsonwebtoken  卸载jsonwebtoken,
    npm install -D @types/jsonwebtoken 重新安装
    
    • 1
    • 2

    4,报错Can’t resolve ‘jsonwebtoken’

    在package.json的devDependencies同级目录加上如下配置,(加"@types/jsonwebtoke":false没用)。
    至此可以使用jsonwebtoken了
      "browser": {
        "jsonwebtoken": false
      },
    
    • 1
    • 2
    • 3
    • 4
    • 5

    参考https://stackoverflow.com/questions/54162297/module-not-found-error-cant-resolve-crypto

    发生这种情况的原因是,当您的 run ng serve 时,它会捆绑您在 package.json
    中的依赖项,以便在浏览器上提供它。但是,package.json
    通常同时包含服务器和浏览器依赖项,并且任何本机模块依赖项(如加密)都不能捆绑在浏览器上。在 package.json
    的浏览器部分中设置“crypto”:false,告诉 ng serve 不要尝试捆绑该文件。

    5,在express服务器里使用jsonwebtoken报错Cannot find module ‘jsonwebtoken’
    全局安装jsonwebtoken和@types/jsonwebtoken都没用,npm install express-jwt即可

  • 相关阅读:
    【optimtool.unconstrain】无约束优化工具箱
    网站文章生成技术-网站文章生成工具免费
    设计模式 -- 命令模式(Command Pattern)
    3年外包裸辞,面试阿里、字节全都一面挂,哭死.....
    Python爬虫-使用代理伪装IP
    在Gitlab平台及Jenkins平台中如何实现ci的过程
    C++类与对象(六)之初始化列表及隐式类型转换
    学用 DevChat 的 VSCode 插件,体验AI智能编程工具 (一)
    部署LVS—NAT模式集群
    Hive详解(超详细)
  • 原文地址:https://blog.csdn.net/weixin_43292547/article/details/126318803