![](/img/trans.png)
[英]When you are using VMWare`s share folder to develop node.js project, how to node_modules file?
[英]How to make Webpack use project's “node_modules” in js scripts located outside the project folder?
我有Node.js項目和以下文件夾結構:
我在prettify.js
腳本中使用awesome-parser
模塊和awesome-formatter.js
庫,如下所示:
require('awesome-parser')
require('../lib/awesome-formatter.js')
反過來, awesome-formatter.js
應該使用awesome-parser
:
require('awesome-parser')
我的FrontEndApp
已配置為使用Webpack,並且我正在嘗試使用npm run dev
命令在dev模式下運行它。 但是,出現以下錯誤:
錯誤編譯失敗,出現1個錯誤
找不到這些依賴項:
* /home/user/dev/lib/awesome-formatter.js中的awesome-parser
我不想在FrontEndApp
內部移動awesome-formatter.js
,因為我也在BackEndApp
項目(可能還有其他一些項目)中使用了它,並且我不想為此在“ lib”中創建單獨的“ node_modules”不要復制磁盤上已安裝的模塊。
因此,我的問題是,如何使Webpack在位於項目文件夾外部的js腳本中使用項目的“ node_modules”?
PS當然,有一些變通辦法,例如符號鏈接或從lib/awesome-fromatter
制作功能齊全的模塊(帶有package.json等)並將其安裝到FrontEndApp/node_modules
,但是有直接的方法來解決此問題嗎?
我已經找到了解決辦法: resolve.modules
前人的精力被添加到的WebPack配置文件。
module.exports = {
...
resolve: {
...
modules: [
'node_modules',
resolve('node_modules')
]
},
...
}
這意味着Webpack會在'node_modules'中搜索模塊作為相對子文件夾(這是通常的行為),並且也在項目的'node_modules'的絕對路徑中搜索: resolve('node_modules')
,以便腳本位於外部文件夾中該項目(例如我結構中的lib
)可以找到並使用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.