2016-07-01 4 views
7

를 해결할 수 : 여기웹팩 2 :이 같은 프로젝트가 모듈을

root/ 
    webpack-config.js 
    app/ 
     app.js 
     js/ 
     dep.js 
    core/ 
     module.js 

하면 웹팩 설정 파일입니다 app.js에

module.exports = { 
    entry: './app/app.js', 
    output: { 
     path: __dirname, 
     filename: "[name]-bundle.js" 
    }, 
    module: { 
     loaders: [ 
      { test: /\.js$/, loader: 'babel-loader', exclude: /node_modules/  }   
     ] 
    }, 
    resolve: { 
     modulesDirectories: ['core'] 
    } 
    ... 

, 내가 가진 :

import local_dep from './js/dep'; 
import myModule from 'module'; 

이것은 webpack 1.x에서 예상대로 작동하지만 myModule 모듈은 webpack 2로 해결되지 않고 "모듈을 찾을 수 없습니다 : 모듈을 해결할 수 없습니다"가 나타납니다. \앱".

modulesDirectories 항목이 무시되고 기본 URL이 항목의 폴더와 일치하는 것 같습니다.

webpack 2를 사용하여 모듈을 올바르게 해석하려면 어떻게해야합니까?

+0

크리스토퍼 데이비스는 정답을 가지고 있어야합니다, 당신은 그것을 선택해야합니다. –

답변

3

편집 : 다른 사람이 언급했듯이, 웹팩 2에 대한이 같은 작품 :

config.resolve = { 
    // Allows us to include js and jsx files without specifying the extension 
    extensions: ['', '.jsx', '.js'], 

    root: [path.resolve('./core')] 
}; 
+0

사실 'global'은 글로벌 객체가 아니라 전역 모듈이라는 의미입니다. 내 질문을 편집했습니다. – user3475757

+0

laggingreflex가 위에 인용 한 것처럼 문서를 읽으면 "root"는 더 이상 Webpack 2 구성의 해결 구문에 포함되지 않습니다. 그냥 "모듈". – Will

+0

이 답변은 Webpack v1.x에는 맞지만 Webpack v2.x로 이동하면'modules.mydules' 객체는'modulesDirectories'와'root'를 대체합니다 –

-4
:

{ 
    resolve: { 
    extensions: ['.js', '.jsx'], 
    modules: ['node_modules', path.resolve(__dirname, 'core')] 
    }, 
} 

웹팩 1, 나는이 항목을 가지고있는 설정을 가지고

Christopher Davies 덕분에 다음과 같이 추가하여 문제를 해결했습니다.

resolveLoader: { 
    root: path.join(__dirname, 'node_modules') 
}, 
resolve: { 
    root: ['./core'] 
} 

resolveLoader 행을 추가해야합니다. 그렇지 않으면로드 할 수없는 babel-loader에 대한 오류가 발생했습니다. 에서

12

: http://moduscreate.com/webpack-2-tree-shaking-configuration/

웹팩 2에서, 설정은 하나의 속성에 병합합니다 root, modulesDirectoriesfallback에서 리졸버 - modules.

resolve: { 
    modules: [ 
     path.resolve('./client'), 
     'node_modules' 
    ] 
    }, 

당신은 modules에서 디렉토리의 수를 지정할 수 있지만 node_modules을 잊지 또는 NPM 패키지 종속성로드 실패하지 않도록합니다 여기에 우리가 웹팩 2 파일 및 모듈 위치를 해결할 수있는 방법이다.


따라서 귀하의 경우 이전에 무엇 :

resolve: { 
    modulesDirectories: ['core'] 
} 

지금

resolve: { 
    modules: ['core'] // also 'node_modules' 
}