我们使用Elixir / webpack将Laravel 5.3和UIKit 2组合设置为捆绑我们的JS。
默认情况下,laravel附带/resources/js/bootstrap.js
(与推特无关)
此文件用于包含依赖项,因此目前看起来像
window._ = require('lodash');
window.$ = window.jQuery = require('jquery');
window.UI = window.UIkit = require('uikit');
然而,因为UIKit是基于组件的,并且允许您使用额外的功能,例如模态/工具提示,然后必须包含额外的js组件。
这些存储为/node_modules/uikit/dist/js/components/tooltip.js
这意味着我正在做
window.UI = window.UIkit = require('uikit');
require('../../../node_modules/uikit/dist/js/components/tooltip');
正如你所看到的那样,一开始有一个令人讨厌的非常冒昧的../../../
,这让我感到不舒服,因为事情发生了,这不是道路。
是否有更有效/稳定/更少错误的方式来包含这些额外的文件? e.g
require('uikit')->path('components/tooltip');
非常感谢
答案 0 :(得分:0)
发布问题后的经典时刻,开始通过Nodes文档挖掘更多内容并且遇到了
https://nodejs.org/api/modules.html#modules_loading_from_node_modules_folders
这说明您可以先通过定义模块来访问子模块,然后通过本地路径访问额外的文件。
e.g
require('MODULE/path/to/submodule');
所以在UIkits示例中它将是
require('uikit/dist/js/components/tooltip');
希望这会帮助其他人。