Babel无法找到模块核心/启动Node.js

时间:2018-08-05 10:59:10

标签: javascript node.js babeljs

我有另一个开发人员编写的Node.js项目,由于Babel无法(可能)无法跟踪模块导入的正确路径,因此我在执行时遇到了困难:

main.js中的一行显示为import Splash from 'core/splash'。 项目的main.js文件位于路径"project_name/webapp/core/main.js""project_name/webapp/core/"目录还包含一个名为splash.js的文件,但据我所知它不是一个包,因为没有与之关联的package.json。我是否可以假设上面的导入行正在尝试加载此文件,但是由于它不是软件包而失败,或者仅仅是因为我没有正确理解目录结构?
我正在使用命令main.js

执行babel-node .\webapp\core\main.js

我收到的确切错误是:

Error: Cannot find module 'core/splash'
    at Function.Module._resolveFilename (module.js:547:15)
    at Function.Module._load (module.js:474:25)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)

Node.js版本v8.11.3, babel-cli版本^ 6.26.0, Babel已在全球安装。

1 个答案:

答案 0 :(得分:1)

如果您在导入语句(即core/splash)中指定了绝对路径,则Node.js将假定您正在引用node_modules目录中的npm模块。

在此示例中,它将查找名为core的模块,其中包含文件splash.js

如果您要导入属于您自己的源代码(不是从npm注册表中安装)的模块,请改用相对路径。

如果main.jssplash.js位于同一目录core中,则正确的导入语句为:

import Splash from './splash'

前导./告诉Node.js:“这是一个相对路径,从当前模块的目录开始。”