npm 发布成功后, npm install 后,项目中导入的数据还是旧版本 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a Javascript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
Javascript 权威指南第 5 版
Closure: The Definitive Guide
jahnsli
V2EX    Javascript

npm 发布成功后, npm install 后,项目中导入的数据还是旧版本

  •  
  •   jahnsli 2023-02-03 21:27:54 +08:00 2878 次点击
    这是一个创建于 1044 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我的 npm 包导出了一些变量

    npm 版本 1.0.0

    const info = { name:'tom' } 

    当我更改内容,发布 npm 版本 1.0.1

    const info = { name:'joy' } 

    我在项目中成功更新 npm 到 1.0.1 ,添加导入其

    info.name 仍然是 tom

    如何使导入的数据保持最新

    yhxx
        1
    yhxx  
       2023-02-03 21:44:11 +08:00
    先检查一下 package-lock 里面是不是锁定了版本
    如果没问题的话去 npm 官网看一下是不是发布成功了,是不是发到了私有源
    learningman
        2
    learningman  
       2023-02-03 21:53:51 +08:00
    是不是 npm 用镜像了
    jahnsli
        3
    jahnsli  
    OP
       2023-02-03 21:56:31 +08:00
    @yhxx lock 文件已经删除了,已经发布成功项目中升级了,node_module 里是最新的, 但是页面中引入的数据还是上个版本,,删除 node_modules 重新安装就正常了 很奇怪
    jahnsli
        4
    jahnsli  
    OP
       2023-02-03 21:56:55 +08:00
    @learningman 这个指的是 ?
    lopda
        5
    lopda  
       2023-02-03 21:56:58 +08:00 via Android
    接楼上我加一个:
    1. 查看当前 npm 源是否官方,国内镜像源可能有延迟
    2.是否发布成功
    3.查看 lock 文件是否锁定
    jahnsli
        6
    jahnsli  
    OP
       2023-02-03 21:59:44 +08:00
    @lopda 指的是发布的官方源还是 ? 源是最新的, 安装成功后 node_modules 里面的数据也是最新的,但就是页面中引入的数据是旧的,删除 node_modules 重新安装就正常了
    lopda
        7
    lopda  
       2023-02-03 22:00:29 +08:00 via Android
    @jahnsli 你可以安装 nrm 进行配置 npm 的源
    lopda
        8
    lopda  
       2023-02-03 22:01:15 +08:00 via Android
    @jahnsli 哦哦哦,重新安装依赖解决了是吧~好的
    jahnsli
        9
    jahnsli  
    OP
       2023-02-03 22:02:17 +08:00
    @lopda 重新删了 node_modules 才能解决,但不能每次升级都删了重新安装吧。 不知道什么导致的,别的 npm 包都不需要删除 node_modules 就可以正常使用
    hellohy
        10
    hellohy  
       2023-02-03 22:29:39 +08:00
    也许你需要 npm link 或者 yalc ,都调完再发布 npm 包
    jahnsli
        11
    jahnsli  
    OP
       2023-02-03 22:37:19 +08:00
    @hellohy 但从更新后的 node_modules 里看数据是最新的,但从页面中导入就是旧的
    Finnn
        12
    Finnn  
       2023-02-03 22:40:15 +08:00
    没遇到要用插件的数据的情景, 可能是缓存?
    npm cache clear 试试
    jahnsli
        13
    jahnsli  
    OP
       2023-02-03 22:44:26 +08:00
    @Finnn 我想导入一些主题变量,export default { primaryColor } 然后多个项目使用
    lisongeee
        14
    lisongeee  
       2023-02-03 23:09:17 +08:00
    试试 项目根目录 package.json 的依赖中填写固定版本然后 npm install
    jahnsli
        15
    jahnsli  
    OP
       2023-02-03 23:25:03 +08:00
    @lisongeee 还是不行,node_modules 里看数据是最新的,但从页面中导入是旧的
    lisongeee
        16
    lisongeee  
       2023-02-04 00:14:46 +08:00
    > 但从页面中导入是旧的

    这句话是什么意思?你用的什么构建工具?这个工具是否会预构建生成缓存
    jahnsli
        17
    jahnsli  
    OP
       2023-02-04 00:36:13 +08:00
    @lisongeee 并没有用构建工具, 直接创建了个 js 文件,然后 export const info = {name:'test'},然后安装后在页面中 import
    lisongeee
        18
    lisongeee  
       2023-02-04 00:50:52 +08:00
    呃,在页面中 import 是什么意思?浏览器貌似不能像 node 一样直接导入 node_modules 里的文件
    可否直接给个 github demo 仓库
    weijiagege
        19
    weijiagege  
       2023-02-04 01:16:47 +08:00 via Android
    @lisongeee 猜测 op 的意思应该是在组件文件头部 import 了那个包,结果发现数据是上一版本的,而他直接从 node modules 进去看那个包里面 export 的数据又是新的
    Baymaxbowen
        20
    Baymaxbowen  
       2023-02-04 08:56:58 +08:00 via iPhone
    node modules 里面有.cache 的文件夹吗如果有就可以删掉 重新 star 就好了
    jahnsli
        21
    jahnsli  
    OP
       2023-02-04 09:06:50 +08:00
    @lisongeee
    @weijiagege https://github.com/laterdayi/test ,是的,我升级包发布后,项目中导入的变量仍是上个版本的
    jahnsli
        22
    jahnsli  
    OP
       2023-02-04 09:07:46 +08:00
    方便联系的,可以联系 Q ,839103055 ,有红包感谢~
    jahnsli
        23
    jahnsli  
    OP
       2023-02-04 09:09:59 +08:00
    @Baymaxbowen 没有发现.cache 文件
    jahnsli
        24
    jahnsli  
    OP
       2023-02-04 09:13:00 +08:00
    我在 npm 包中

    export default { count:1 }

    然后项目中

    import {count} from '***'


    第一次是正确的,如果我修改{count:2}并将 npm 包升级,项目中再次安装,node_modules 里的 count 是 2 ,但是页面中的 count 仍是 1
    jahnsli
        25
    jahnsli  
    OP
       2023-02-04 09:13:45 +08:00
    @jahnsli 只有删除 node_modules 重新安装才可以,但因为包升级频繁,不能每次都删除 node_modules
    jahnsli
        26
    jahnsli  
    OP
       2023-02-04 09:24:22 +08:00   1
    好像跟 vite 有关,每次浏览器访问的是 node_modules/.vite/deps/vars.js?v=2a48daf9 的数据,而不是新安装的 node_modules 里面的数据

    @Baymaxbowen
    @weijiagege
    @lisongeee
    @lopda
    @Finnn
    @yhxx
    lopda
        27
    lopda  
       2023-02-09 11:05:20 +08:00
    @jahnsli 按照你说的,看了下,果然是这样,如果通过添加 --force 能解决也行,如果无法解决 vite 这个问题,暂时我是添加了 sh 进行处理的

    run.sh

    ```
    rm -rf node_modules

    pnpm install
    pnpm run dev

    ```
    package.json:

    ```
    "r-dev": "sh run.sh"
    ```
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2669 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 14:05 PVG 22:05 LAX 06:05 JFK 09:05
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86