使用Webpack / NPM Combo需要模块中的其他文件

时间:2016-11-14 17:31:22

标签: javascript module npm uikit require

场景

我们使用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');

非常感谢

1 个答案:

答案 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');

希望这会帮助其他人。