node 诡异的问题,找不到自己写的 js module - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
selfcreditgiving
V2EX    问与答

node 诡异的问题,找不到自己写的 js module

  •  
  •   selfcreditgiving 2019-08-16 17:44:43 +08:00 2274 次点击
    这是一个创建于 2252 天前的主题,其中的信息可能已经有所发展或是发生改变。

    node 用 require 引入 js 文件, 另一个文件可以,一个却不行,到底是什么原因,本地跑也都是没问题的,放到服务器上跑就不行了。为什么会用这么诡异的问题、、、 大家帮忙看看,3Q

    引入 globalIncreId.js 不行, 引入 config.js 是可以的, 文件都是有的:

    $ ls -al total 124 drwxr-xr-x 4 root root 4096 Aug 16 17:33 . drwxr-xr-x 5 root root 4096 Aug 16 17:27 .. drwxr-xr-x 8 root root 4096 Aug 16 17:30 .git -rw-r--r-- 1 root root 66 Aug 16 17:27 .gitattributes -rwxr-xr-x 1 root root 31 Aug 16 17:27 .gitignore -rw-r--r-- 1 root root 10054 Aug 16 17:27 DDL.sql -rw-r--r-- 1 root root 7877 Aug 16 17:27 app.js -rw-r--r-- 1 root root 2060 Aug 16 17:27 collectConfig.js -rw-r--r-- 1 root root 2059 Aug 16 17:27 collectConfig_editing.js -rw-r--r-- 1 root root 644 Aug 16 17:28 config.js -rw-r--r-- 1 root root 129 Aug 16 17:27 db.js -rw-r--r-- 1 root root 129 Aug 16 17:27 db1.js -rw-r--r-- 1 root root 379 Aug 16 17:33 globalIncreID.js -rw-r--r-- 1 root root 545 Aug 16 17:27 globalIncreID_mysql.js -rw-r--r-- 1 root root 1236 Aug 16 17:27 myUtil.js drwxr-xr-x 20 root root 4096 Aug 16 17:27 node_modules -rw-r--r-- 1 root root 4956 Aug 16 17:27 package-lock.json -rw-r--r-- 1 root root 372 Aug 16 17:27 package.json -rw-r--r-- 1 root root 601 Aug 16 17:27 redisCli.js -rw-r--r-- 1 root root 339 Aug 16 17:27 test2.js -rw-r--r-- 1 root root 429 Aug 16 17:27 testAsync.js -rw-r--r-- 1 root root 829 Aug 16 17:27 testAsyncEach.js -rw-r--r-- 1 root root 875 Aug 16 17:27 testAsyncForever.js -rw-r--r-- 1 root root 286 Aug 16 17:27 testAsyncWhilst.js -rw-r--r-- 1 root root 219 Aug 16 17:27 testGlobalIncreID.js -rw-r--r-- 1 root root 584 Aug 16 17:27 testMysqlReturn.js -rw-r--r-- 1 root root 371 Aug 16 17:27 testSetTimeIntervalRun.js 

    这个不行:

    const globalIncreId = require('./globalIncreId'); 

    报错:

    $ node app.js internal/modules/cjs/loader.js:583 throw err; ^ Error: Cannot find module './globalIncreId' at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15) at Function.Module._load (internal/modules/cjs/loader.js:507:25) at Module.require (internal/modules/cjs/loader.js:637:17) at require (internal/modules/cjs/helpers.js:22:18) at Object.<anonymous> (/apps/unify-data/app.js:13:23) at Module._compile (internal/modules/cjs/loader.js:689:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10) at Module.load (internal/modules/cjs/loader.js:599:32) at tryModuleLoad (internal/modules/cjs/loader.js:538:12) at Function.Module._load (internal/modules/cjs/loader.js:530:3) 

    这个 config 是可以的:

    const cOnfig= require('./config'); 
    13 条回复    2019-08-17 10:20:48 +08:00
    selfcreditgiving
        1
    selfcreditgiving  
    OP
       2019-08-16 17:48:29 +08:00
    自己更新一下:
    把 globalIncreId.js 改成 global.js ,然后再把 require 改成对应的名字又可以了。。。 这个文件名有毒吗
    CDL
        2
    CDL  
       2019-08-16 17:51:25 +08:00
    linux 文件名区分大小写,win 不区分。手动狗头
    selfcreditgiving
        3
    selfcreditgiving  
    OP
       2019-08-16 17:54:37 +08:00
    @CDL 本地环境是 mac,服务器是 ubuntu docker 容器,应该没区别吧 搞不懂了
    selfcreditgiving
        4
    selfcreditgiving  
    OP
       2019-08-16 17:55:59 +08:00
    总是要给你出一些幺蛾子 ,,,
    CDL
        5
    CDL  
       2019-08-16 17:56:40 +08:00
    @selfcreditgiving globalIncreID != globalIncreId
    valeamoris
        6
    valeamoris  
       2019-08-16 17:57:20 +08:00
    mac 环境是不区分大小写的
    selfcreditgiving
        7
    selfcreditgiving  
    OP
       2019-08-16 18:08:47 +08:00
    @CDL 这个厉害了,自己肯定发现不了。 多谢大佬
    老是犯这种低级错误,大佬们是怎么预防的啊,好几次被这种情况折磨死,最后才发现只是一个变量名写错了

    这个 phpstorm 它也不报错呀
    CDL
        8
    CDL  
       2019-08-16 18:14:51 +08:00
    eslint 可以解决绝大部分这种低级问题
    rbe
        9
    rbe  
       2019-08-16 18:16:44 +08:00
    并非 mac 不区分大小写,只是默认不区分。实际 mac 提供的文件系统也可以装成区分大小写的,不过可能有些软件会坑了。
    针对这个问题,你可以试试放弃驼峰命名,改用用下划线命名?
    selfcreditgiving
        10
    selfcreditgiving  
    OP
       2019-08-16 18:21:32 +08:00
    @CDL eslint 确实没配,想着简单一点,主要还是懒 以后把别人的代码拷过来用也不用调格式了
    hoyixi
        11
    hoyixi  
       2019-08-16 18:26:45 +08:00
    让我想起了 getElemenById =》 getElemenByID

    文本编辑神器和前端 IDE 还 G 没泛滥的年代,手写 js 狂操 DOM 的时候,不知写错过多少回。文思泉涌,行云流水,写完一运行,MLGB~
    miyuki
        12
    miyuki  
       2019-08-16 19:07:22 +08:00 via Android
    @hoyixi 然后少了个 t /手动狗头
    rockjike
        13
    rockjike  
       2019-08-17 10:20:48 +08:00 via Android
    配个智能路径
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     878 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 21:01 PVG 05:01 LAX 14:01 JFK 17:01
    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