복붙노트

[JQUERY] 관리 jQuery를 플러그인 의존성에 웹팩

JQUERY

관리 jQuery를 플러그인 의존성에 웹팩

해결법


  1. 1.당신은 혼합 다른 레거시 공급 업체의 모듈을 포함하는 방법에 접근했습니다. 이것은 내가 그것을 해결 거라고하는 방법입니다 :

    당신은 혼합 다른 레거시 공급 업체의 모듈을 포함하는 방법에 접근했습니다. 이것은 내가 그것을 해결 거라고하는 방법입니다 :

    대부분의 모듈은 package.json의 주요 분야에서 DIST 버전을 연결합니다. 이것은 대부분의 개발자들에게 유용하지만이 방법 웹팩 더 나은 (예를 들어, DedupePlugin 사용) 최적화 종속성 수 있기 때문에, 웹팩 것이의 src 버전 별칭에 더 좋다.

    // webpack.config.js
    
    module.exports = {
        ...
        resolve: {
            alias: {
                jquery: "jquery/src/jquery"
            }
        }
    };
    

    그러나 대부분의 경우 DIST 버전은 잘뿐만 아니라 작동합니다.

    jQuery를 플러그인은 $ 또는 jQuery를에처럼 대부분의 기존 모듈은 특정 전역의 존재에 의존하고 있습니다. 이 시나리오에서는 당신이 앞에 추가 var에 $의 =에, 웹팩 구성 할 수는 글로벌 $ 식별자를 발견 ( "JQuery와")마다 필요합니다.

    var webpack = require("webpack");
    
        ...
    
        plugins: [
            new webpack.ProvidePlugin({
                $: "jquery",
                jQuery: "jquery"
            })
        ]
    

    일부 기존 모듈이 창 객체 인에 의존하고 있습니다. 모듈은 이것이 동일 module.exports CommonJS 콘텍스트에서 실행되는 경우에 문제가된다. 이 경우 수입 로더와이를 대체 할 수 있습니다.

    다음 NPM 난 수입 로더 --save-DEV를 실행하고

    module: {
        loaders: [
            {
                test: /[\/\\]node_modules[\/\\]some-module[\/\\]index\.js$/,
                loader: "imports-loader?this=>window"
            }
        ]
    }
    

    수입 로더는 또한 모든 종류의 수동 분사 변수로 사용할 수 있습니다. 이 암시 전역에 올 때 그러나 대부분의 시간은 ProvidePlugin 더 유용합니다.

    AMD, CommonJS 및 기존처럼, 서로 다른 모듈 스타일을 지원하는 모듈이 있습니다. 그러나, 대부분의 시간은 먼저 정의를 확인하고 수출 특성에 약간의 기발한 코드를 사용합니다. 이 경우,이 설정에 의해 CommonJS 경로를 강제로 = 거짓을 정의하는 데 도움이 될 수.

    module: {
        loaders: [
            {
                test: /[\/\\]node_modules[\/\\]some-module[\/\\]index\.js$/,
                loader: "imports-loader?define=>false"
            }
        ]
    }
    

    전역 변수에 대한 관심과 단지 작업에 기존 스크립트를 원하지 않는 경우, 당신은 또한 스크립트 로더를 사용할 수 있습니다. 그것은 당신이