使用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"
然后它应该与默认混合样板一起工作。