node_modules를 제외하지 않는 Webpack


85

나는 내가 구축하고있는 Node 프레임 워크에 webpack을 사용하고 있습니다. (물론 gulp를 사용해야 할 것입니다.) 내가 EJS 모듈을 포함하면, webpack은 node_modules dir을 제외하도록 명시 적으로 지시하더라도 컴파일 된 소스에 포함합니다.

module.exports = {
    context: __dirname,
    target: 'node',
    // ...
    output: {
        libraryTarget: 'commonjs'
        // ...
    },
    module: {
        loaders: [
            {
                test: /\.js$/,
                exclude: /node_modules/,
                loader: 'babel-loader?{ "stage": 0, "optional": ["runtime"] }'
            }
        ]
    }
};

보시다시피 JS 파일에 대한 테스트가 있으며 node_modules를 제외하도록 지시합니다. 내 제외를 무시하는 이유는 무엇입니까?

답변:


183

만 제외하고 같은 설정 파일에서, 그것은 것 node_modules으로 해석되는 babel-loader, 하지만 번들로 제공되는.

node_modules번들링에서 기본 노드 라이브러리 를 제외 하려면 다음을 수행해야합니다.

  1. 에 추가 target: 'node'하십시오 webpack.config.js. 이렇게하면 기본 노드 모듈 (경로, fs 등)이 번들에서 제외 됩니다.
  2. 다른 .NET 을 제외 하려면 webpack-node-externals 를 사용 하세요node_modules .

따라서 결과 구성 파일은 다음과 같아야합니다.

var nodeExternals = require('webpack-node-externals');
...
module.exports = {
    ...
    target: 'node', // in order to ignore built-in modules like path, fs, etc. 
    externals: [nodeExternals()], // in order to ignore all modules in node_modules folder 
    ...
};

7
브라우저에 비슷한 것이 있습니까? (예 : 'browser')
Andrea.cabral

나는 무엇을 이해하려고 노력하고 exclude: /node_modules/있습니다. 자세히 설명해 주시겠습니까? 제외하면 어떻게 될까요?
Šime Vidas

정규식입니다. 당신이 그것을 떠날 경우, node_modules이 포함됩니다
meredrica

환상적인 대답과 능력.
Geek Stocks

2
@ ŠimeVidas node_modulesdir을 babel-loader실행 에서 제외 하지만 번들에서 제외하지는 않습니다.
mlg87

16

타이프 라이터를 사용할 때이 문제에 실행하는 경우, 당신은 추가해야 할 수 있습니다 skipLibCheck: true귀하의 tsconfig.json파일.


7

절대 경로를 사용해보십시오.

exclude:path.resolve(__dirname, "node_modules")

프로젝트가 어떻게 구성되어 있는지 보여줄 수 있습니까? 파일 구조
Alan

-1

아래 해결책을 시도하십시오.

exclude:path.resolve(__dirname, "node_modules")

6
StackOverflow에 오신 것을 환영합니다. 다른 답변에 추가 가치를 제공하면 더 좋을 것입니다. 이 경우 다른 (Alan) 사용자가 이미 5 년 전에 해당 솔루션을 게시했기 때문에 귀하의 답변은 추가 가치를 제공하지 않습니다. 평판이 충분하면 투표해야합니다
Oleg Valter

-2

이것은 나를 위해 일했습니다.

제외 : [/ bower_components /, / node_modules /]

module.loaders

자동으로 적용된 로더의 배열입니다.

각 항목은 다음 속성을 가질 수 있습니다.

테스트 : 충족해야하는 조건

제외 : 충족되지 않아야하는 조건

포함 : 충족해야하는 조건

로더 : "!"문자열 분리 된 로더

로더 : 문자열로 된 로더 배열

조건은 RegExp, 절대 경로 시작 또는 "and"와 결합 된 이들 중 하나의 배열 일 수 있습니다.

참조 http://webpack.github.io/docs/configuration.html#module-loaders를

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.