2017-02-23 73 views
1

只需使用webpack设置一个项目即可。只是 npm install uikit --save不能在Webpack中使用UIkit

在我的主要js文件安装的UIKit我用

import 'jquery'; 
import 'uikit/dist/js/uikit.js'; 

在我的主HTML文件我写下面的代码

<!doctype html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Document</title> 
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/uikit/3.0.0-beta.12/css/uikit.min.css" /> 
</head> 
<body> 

<ul uk-accordion> 
    <li class="uk-open"> 
     <h3 class="uk-accordion-title">Item 1</h3> 
     <div class="uk-accordion-content"> 
      <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p> 
     </div> 
    </li> 
    <li> 
     <h3 class="uk-accordion-title">Item 2</h3> 
     <div class="uk-accordion-content"> 
      <p>Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor reprehenderit.</p> 
     </div> 
    </li> 
    <li> 
     <h3 class="uk-accordion-title">Item 3</h3> 
     <div class="uk-accordion-content"> 
      <p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat proident.</p> 
     </div> 
    </li> 
</ul> 

<script src="dist/main.js"></script> 
</body> 
</html> 

怀特运行​​故宫开始一切正常.. 但它说Uncaught ReferenceError:UIkit没有定义。

Error picture is here. click on me

我失踪..感谢您的帮助。

+0

'从uikit/dist/js/uikit.js'导入UIkit;'? –

+0

试过但没有工作。同样的问题。 – Anam

+0

我的github repo链接是https://github.com/anamwp/style-switcher – Anam

回答

2

UIKit在window对象中需要它的东西。所以这可能是做幼稚的方式main.js

import Vue from 'vue'; 
import UIkit from 'uikit'; 
import Icons from 'uikit/dist/js/uikit-icons'; 
import jQuery from 'jquery'; 
import App from './App'; 

UIkit.use(Icons); 

window.jQuery = jQuery; 
window.UIkit = UIkit; 

module.exports = new Vue({ 
    router, 
    el: '#app', 
    template: '<App/>', 
    components: { App }, 
    store, 
}); 

取而代之的是,更好的解决方案似乎是编辑的WebPack的配置,因为每this SO answer。所以,这适用于我:

{ 
    test: require.resolve('jquery'), 
    loader: 'expose-loader?jQuery!expose-loader?$' 
    }, 
    { 
    test: require.resolve('uikit'), 
    loader: 'expose-loader?UIkit' 
    }