Laravel Mix - 自动加载名称中带有特殊字符的模块(例如 tippy.js 或 slick-carousel)
Laravel Mix - Autoload modules with special characters in their name (eg. tippy.js or slick-carousel)
有什么方法可以自动加载其中包含特殊字符的包吗?
我想使用 laravel mix 提取 npm 包,并为模块设置一个全局变量。当我使用其中包含特殊字符的模块时,mix.autoload() 失败。我在下面发布了示例代码以供参考。
mix.autoload({
jquery: ['$', 'window.jQuery', 'jQuery'],
'tippy.js': ['tippy', 'window.tippy'],
'slick-carousel': ['slick', 'window.slick'],
'bootstrap-select': ['bootstrap-select'],
})
.extract(['jquery', 'slick-carousel', 'bootstrap-select', 'tippy.js']);
我能够使用 Laravel Mix 的别名功能解决问题。
mix.webpackConfig({
resolve: {
modules: [
'node_modules'
],
alias: {
slick: 'slick-carousel/slick/slick.js',
tippy: 'tippy.js/dist/tippy.cjs.js',
}
}
});
mix.autoload({
jquery: ['$', 'window.jQuery', 'jQuery'],
clipboard: ['ClipboardJS', 'window.ClipboardJS'],
tippy: ['tippy', 'window.tippy'],
slick: ['slick', 'window.slick'],
});
有什么方法可以自动加载其中包含特殊字符的包吗?
我想使用 laravel mix 提取 npm 包,并为模块设置一个全局变量。当我使用其中包含特殊字符的模块时,mix.autoload() 失败。我在下面发布了示例代码以供参考。
mix.autoload({
jquery: ['$', 'window.jQuery', 'jQuery'],
'tippy.js': ['tippy', 'window.tippy'],
'slick-carousel': ['slick', 'window.slick'],
'bootstrap-select': ['bootstrap-select'],
})
.extract(['jquery', 'slick-carousel', 'bootstrap-select', 'tippy.js']);
我能够使用 Laravel Mix 的别名功能解决问题。
mix.webpackConfig({
resolve: {
modules: [
'node_modules'
],
alias: {
slick: 'slick-carousel/slick/slick.js',
tippy: 'tippy.js/dist/tippy.cjs.js',
}
}
});
mix.autoload({
jquery: ['$', 'window.jQuery', 'jQuery'],
clipboard: ['ClipboardJS', 'window.ClipboardJS'],
tippy: ['tippy', 'window.tippy'],
slick: ['slick', 'window.slick'],
});