使用npm包含令牌字段包

我试图包括与npm令牌包laravel。

首先我添加了以下行到package.json依赖关系:

"tokenfield": "^0.8.2", 

这导致节点模型下的tokenfield文件夹。 然后我添加了以下几行webpack.mix.js:

 .copy('node_modules/tokenfield/dist/tokenfield.js', 'public/js') .copy('node_modules/tokenfield/dist/tokenfield.css', 'public/css') 

这导致我在我的公用文件夹中有tokenfield javascript和css。 现在我只是在我的视图中包括这些:

 <link href="{{ asset('css/app.css') }}" rel="stylesheet"> <script src="{{ asset('js/tokenfield.js') }}"></script> 

但是这个工作。 我得到以下错误:

 Uncaught ReferenceError: module is not defined at tokenfield.js:1 

当我看着tokenfield.js它看起来像一个常规的JavaScript文件,它开始于:

 module.exports = 

那么我在这里错过了什么?

大多数情况下,您需要转储NPM软件包。 做这个:

在你的主js(例如app.js)

 window.Tokenfield = require("tokenfield"); 

window需要被使用以使其全局可访问,因为所有依赖关系都是在iife中执行的,因此默认情况下不是全局作用域的一部分(这对于所有模块来说都不是必需的)。

在你的主SCSS(如app.scss)

 @import "node_modules/tokenfield/lib/scss/tokenfield" 

然后它应该与默认混合样板一起工作。