2017-11-19 33 views
3

전 세계적으로 사용할 수 있도록/vendor 폴더의 자산을 어떻게 포함합니까?Webpack Encore :/vendor에서 js를 포함하고 전역 적으로 사용하는 방법?

내 base.html.twig :

<script src="{{ asset('build/vendor.js') }}"></script> 
<script src="{{ asset('build/color-admin.js') }}"></script> 
<script src="{{ asset('build/app.js') }}"></script> 

<script> 
    $(document).ready(function() { 
     App.init(); 
    }); 
</script> 

그리고 내 webpack.config에 내가 가진

:

onePageJSVolder가/공급 업체 폴더에 유효한 URL을 것입니다
.addEntry('color-admin', [ 
    onePageJSFolder + '/apps.js', 
    onePageCSSFolder + '/animate.css', 
    onePageCSSFolder + '/style.css', 
    onePageCSSFolder + '/style-responsive.css', 
    onePageCSSFolder + '/theme/orange.css', 
]) 

:

var frontend = './vendor/suvya/color-admin-3/frontend'; 
var onePage = frontend + '/one-page-parallax/template_content_html'; 
var onePageAssetsFolder = onePage + '/assets'; 
var onePagePluginsFolder = onePageAssetsFolder + '/plugins'; 
var onePageCSSFolder = onePageAssetsFolder + '/css'; 
var onePageLessFolder = onePageAssetsFolder + '/less'; 
var onePageJSFolder = onePageAssetsFolder + '/js'; 

하지만 App이 정의되지 않았습니다. 오류가 발생합니다. (base.html.twig에서 가져옴). 앱은 apps.js에서 신고되었지만 전 세계적으로 인정되지는 않습니다.

어떻게 해결할 수 있습니까? 기본이 의지에 의해

php bin/console assets:install 

:

내가 사용하는 패키지는 자산이 명령 줄을 사용하여 저장되는 자료 \ 공용 폴더가 있다고 가정 심포니 - BETA4에게

답변

1

를 실행하고 모든 공급 업체 Resource \ Public을 웹 디렉토리에 복사하십시오. 이에 대한 자세한 내용은 Symfony Blog에서 확인할 수 있습니다. 모든 자산을 웹 디렉토리에 보관하는 것은 Symfony Best Practice으로 간주됩니다. 제한된 공개 대상 구성 요소를 허용합니다.

+0

아니요 공용 폴더에 자산을 저장하지 않아야합니다. 웹 팩에 의해 생성 된 다음 공용 폴더에 저장됩니다. 공유 된 링크와 주어진 응답이 내 질문과 관련이 없습니다. – apfz

1

base.html.twig에 대해서만 createSharedEntry를 사용하는 것이 더 좋을까요? 내 예에서 봐는 응용 프로그램을 반응 :

.createSharedEntry('vendor', [ 
    'jquery', 
    'bootstrap', 
    'react', 
    'react-dom', 
    './node_modules/bootstrap/scss/bootstrap.scss' 
]) 

그것은 세 개의 파일, vandor.css, vendor.js 및 manifest.js를 생성합니다. 이 흐름은 documentation에 설명되어 있고 문제는 inside Webpack, when you require a module, it does not (usually) set a global variable. Instead, it just returns a value:입니다. 전역 변수를 확인해야합니다. this example 글로벌 변수와 jQuery 문제를 해결하고, 아마도 당신을 도울 것 같습니다. 표시되는대로 autoProvideVariables을 webpack.config.js에 추가해야합니다.