이 필요합니다 (이 순서 )웹팩 번들은 부트 스트랩의 자바 스크립트 내가 다음 달성하기 위해 노력하고 jQuery를
bundle
jquery
,tether
및bootstrap.js
.- 이 번들을
HTML
페이지 내에로드하고 그 아래에 다른 페이지 특정 스크립트를로드하십시오.
이것을 달성하려면 webpack 2
과 CommonsChunkPlugin
을 사용하고 있습니다. 여기 내 설정입니다. entries
를 들어
내가 가진 :
plugins
섹션에서
const scriptsEntry = {
blog_index: SRC_DIR + "/js/pages/blog_index.js",
blog_about: SRC_DIR + "/js/pages/blog_about.js",
vendor: ["jquery", "tether", "bootstrap"]
};
: 소스 디렉토리 내부
<script src="{{ url_for('static', filename='dist/js/vendor.bundle.js') + anti_cache_token }}"></script>
<script src="{{ url_for('static', filename='dist/js/home.js') + anti_cache_token }}"></script>
:
scriptsPlugins.push(
new webpack.optimize.CommonsChunkPlugin({
name: "vendor",
filename:"vendor.bundle.js",
minChunks: 2
}),
...
}));
내부 'index.html을이'나는 번들을로드 blog_index.js
에서 나는 jquery
을 사용합니다. :
import $ from "jquery";
$(".home-click").click(function() {
alert("clicked from .home-click");
});
결과 : 오류없이
- 모든 번들.
.home-click
을 클릭하면alert box
이 예상대로 실행됩니다.vendor.bundle.js
포함 : 나는 것을 볼 수 번들 파일을 확인
jquery
,tether
및bootstrap
.- 예를 들어
blog_index.js
(webpack 2
을 실행 한 후)을 보면이 파일에는jquery
가져 오기가 번들로 제공되지 않지만vendor.bundle.js
(예상대로)이라는 것을 알 수 있습니다. 내가 브라우저 콘솔 확인할 때
그러나, 나는 다음과 같은 문제이 :이 라인 vendor: ["jquery", "tether", "bootstrap"]
에있는 라이브러리의 순서를 전환했지만, 아무것도 변경되지
을 - 오류가 아직 있습니다.
webpack
플러그인을 추가로 사용하지 않고이 문제를 어떻게 해결할 수 있는지 알고 계십니까?
답장을 보내 주셔서 감사합니다. 짧은 질문이 있습니다 :이 추가는'vendor.bundle.js'에 영향을 미칩니 까? –
예, 'jQuery','$','window.jQuery' 등의 인스턴스를 실제로'jQuery' 객체를 가리키는 것으로 대체 할 것입니다. 예를 들어, 다음과 같은 것은'* WEBPACK VAR INJECTION */(function (jQuery, __webpack_provided_window_dot_Tether, Tether) {/ *!}와 같은 것입니다. 어떤 식 으로든 기능에 아무런 영향을 미치지 않습니다, –
감사합니다! : 그것은 단지 플러그인을 노출하기 때문에'entry'와'CommonChunksPlugin'의 설정을 수정할 필요가 없다는 것을 의미합니다. 정확하게 얻었습니까? –