2016-05-17 79 views
5

我有一個項目設置爲這樣,我試圖要求file-a.jsfile-b.js從父項目目錄中使用webpack和babel文件

project-name/ 
    node_modules/ 
    src/ 
    file-a.js 
    tools/ 
    tool-name/ 
     node_modules/ 
     src/ 
     file-b.js 
     webpack.config.js 
     package.json 
    package.json 

webpack 1.13.0配置正常運行,直到我說babel-loader 6.2.4與babel-preset-es2015 6.6.0。然後我開始收到錯誤消息。

ERROR in /home/dan/dev/dan/project-name/src/file-a.js Module build failed: Error: Couldn't find preset "es2015" relative to directory "/home/dan/dev/dan/project-name/src"

現在我有一種預感,這種情況正在發生,因爲它在上package.json尋找babel-preset-es2015。我可以通過在該級別安裝它來使這個錯誤消失,但是然後我收到一條關於babel模塊不在那裏的類似消息。

我已經嘗試了各種各樣的東西,將上面的src目錄符號鏈接到內部項目中,使用resolve.rootresolve.alias嘗試手動解析沒有嵌套路徑的文件夾。使用context將項目根目錄設置爲外部文件夾,但它仍然拾取錯誤的node_modules

如何強制webpack使用正確的node_modules文件夾?

回答

1

默認情況下,webpack會查找./node_modules,../node_modules../../node_modules。在moduleDirectoriesin webpack's documentation

module.exports = { 
    // ... 
    resolve: { 
    modulesDirectories: [path.join(__dirname, 'node_modules')] 
    } 
} 

更多細節:

,迫使它只能使用特定的目錄,你可以設置一個絕對路徑在resolve部分模塊modulesDirectories財產

相關問題