Javascript 如何使用project';s";节点“U模块”;在项目文件夹外的js脚本中?
我有Node.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解
- 解放党
- 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
)可以找到并使用它