Webpack Encore включает в себя внешние JS - PullRequest
0 голосов
/ 22 июня 2019

У меня проблема, которую я не могу понять:

webpack.config.js

Encore
    // directory where compiled assets will be stored
    .setOutputPath('public/build/')
    .copyFiles({
         from: './assets/media',
         // if versioning is enabled, add the file hash too
         to: 'media/[path][name].[hash:8].[ext]',
     })
    // public path used by the web server to access the output path
    .setPublicPath('/build')
    // only needed for CDN's or sub-directory deploy
    //.setManifestKeyPrefix('build/')


    .addEntry('app', ['./assets/js/app.js'])


    .splitEntryChunks()

    // will require an extra script tag for runtime.js
    // but, you probably want this, unless you're building a single-page app
    .enableSingleRuntimeChunk()

[...];

app.js

// require jQuery normally
const $ = require('jquery');

// create global $ and jQuery variables
global.$ = global.jQuery = $;

require('../../assets/vendors/general/jquery/dist/jquery.js');
require('../../assets/vendors/general/popper.js/dist/umd/popper.js');
require('../../assets/vendors/general/bootstrap/dist/js/bootstrap.min.js');
require('../../assets/vendors/general/js-cookie/src/js.cookie.js');
require('../../assets/vendors/general/tooltip.js/dist/umd/tooltip.min.js');
require('../../assets/vendors/general/perfect-scrollbar/dist/perfect-scrollbar.js');
require('../../assets/vendors/general/sticky-js/dist/sticky.min.js');
require('../../assets/vendors/general/wnumb/wNumb.js');
require('../../assets/js/demo1/scripts.bundle.js');

require('../../assets/css/demo1/style.bundle.css');
require('../../assets/css/demo1/skins/header/base/light.css');
require('../../assets/css/demo1/skins/header/menu/light.css');
require('../../assets/css/demo1/skins/brand/dark.css');
require('../../assets/css/demo1/skins/aside/dark.css');

Но на моей странице я получаю эту ошибку:

jquery.js: 3850 Uncaught ReferenceError: PerfectScrollbar не определен

У меня нетпонять, почему, потому что идеальная полоса прокрутки хорошо требуется.То же самое, если я делаю это с импортом.И то же самое, если я удаляю идеальную полосу прокрутки, я получаю то же сообщение с липкой js.

Спасибо за вашу помощь,

Alex

1 Ответ

0 голосов
/ 24 июня 2019

ОК нашел решение с поддержкой Metronic:

Encore.addPlugin(new webpack.ProvidePlugin({
    PerfectScrollbar: require.resolve("perfect-scrollbar"),
}));
...