Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用project';s";节点“U模块”;在项目文件夹外的js脚本中?_Javascript_Node.js_Webpack - Fatal编程技术网

Javascript 如何使用project';s";节点“U模块”;在项目文件夹外的js脚本中?

Javascript 如何使用project';s";节点“U模块”;在项目文件夹外的js脚本中?,javascript,node.js,webpack,Javascript,Node.js,Webpack,我有Node.js项目和以下文件夹结构: 解放党 awesome-formatter.js 前端应用程序 美化 节点单元 很棒的解析器 后端应用程序 我在prettify.js脚本中使用awesome parser模块和awesome formatter.js库,如下所示: require('awesome-parser') require('../lib/awesome-formatter.js') awesome formatter.js也应依次使用awesome解

我有Node.js项目和以下文件夹结构:

  • 解放党
    • awesome-formatter.js
  • 前端应用程序
    • 美化
    • 节点单元
      • 很棒的解析器
  • 后端应用程序
我在
prettify.js
脚本中使用
awesome parser
模块和
awesome formatter.js
库,如下所示:

require('awesome-parser')

require('../lib/awesome-formatter.js')
awesome formatter.js
也应依次使用
awesome解析器

require('awesome-parser')
我的
FrontEndApp
已配置为使用Webpack,我正在尝试使用
npm run dev
命令在开发模式下运行它。但是,我得到了以下错误:

编译错误失败,有1个错误

未找到这些依赖项:

*/home/user/dev/lib/awesome-formatter.js中的awesome解析器

我不想将
awesome formatter.js
移动到
FrontEndApp
中,因为我也在
BackEndApp
项目中使用它(可能还有其他一些项目),我不想在“lib”中创建单独的“node_模块”,因为它只是为了不在磁盘上复制已安装的模块

所以,我的问题是,如何让Webpack在项目文件夹外的js脚本中使用project的“node_modules”


另外,当然也有一些变通方法,如符号链接或从
lib/awome fromatter
制作一个全功能模块(带有package.json等),并将其安装到
FrontEndApp/node_模块中,但是有没有直接的方法来解决这个问题呢?

我找到了一个解决方案:
解决。应该将模块添加到网页包配置文件中

module.exports = {
  ...
  resolve: {
  ...
    modules: [
      'node_modules',
      resolve('node_modules')
    ]
  },
  ...
}
这意味着Webpack正在将“节点模块”中的模块作为相对子文件夹进行搜索(这是通常的行为),并在项目的“节点模块”的绝对路径上进行搜索:
resolve('node\u modules')
,以便项目外部文件夹中的脚本(如我的结构中的
lib
)可以找到并使用它