gpt4 book ai didi

javascript - 编译 Laravel、Webpack 和 Sparkline 的问题

转载 作者:行者123 更新时间:2023-11-30 19:28:51 25 4
gpt4 key购买 nike

我正在尝试实现 Sparkline JavaScript package在我的 Laravel 5.8 项目中使用 Laravel Mix。迷你图不会显示,我收到以下浏览器控制台错误。

Uncaught ReferenceError: sparkline is not defined.

我没有正确调用它。

这是我的步骤:

使用 npm 安装 sparkline 包

npm install @fnando/sparkline --save-dev

并确认包存在于 node_modules (node_modules/@fnando/sparkline)

向我的 webpack.mix.js 添加一个条目:

mix.js([
'resources/js/app.js',
'node_modules/@fnando/sparkline'
],'public/js');

在我的 ./resources/js/app.js 中包含一个导入:

import sparkline from "@fnando/sparkline"

使用 npm run dev 运行 webpack 生成 Assets :./public/js/app.js.

它们在我的主布局 Blade 中是这样引用的:

[.. snip ..]
<script src="{{ asset('js/resources.js') }}"></script>
<script src="{{ asset('js/semantic.js') }}"></script>
<script src="{{ asset('js/app.js') }}"></script>

<script>
$('.ui.dropdown').dropdown();
$('.ui.sticky').sticky({
offset: 50,
context: '#content'
});

@stack('inline_scripts')
</script>
</body>
</html>

最后,我尝试像这样在我的 Blade 中渲染迷你图:

@extends('layouts.master')

@section('content')

<div class="ui secondary segment">
<h4>Sparklines!</h4>
<div class="ui two column centered grid">
<div class="column">
<svg class="sparkline" width="100" height="30" stroke-width="3"></svg>
</div>
</div>

</div>

@push('inline_scripts')
sparkline.sparkline(document.querySelector(".sparkline"), [1, 5, 2, 4, 8, 3, 7]);
@endpush

@endsection

最佳答案

将 jQuery Sparklines 插件安装为 NPM 包。

npm install @fnando/sparkline

更改您的 Webpack 文件。

const mix = require('laravel-mix');

mix.js('resources/js/app.js', 'public/js')
.sass('resources/sass/app.scss', 'public/css')
.copy('node_modules/@fnando/sparkline/dist/sparkline.js', 'public/js');

编译您的 Assets 。

npm run production

该包现在将被编译成 /public/js/app.js 以便在您的 Blade 模板中使用;将它放在 Blade 文件顶部的标题中。

    <script src="{{ mix('js/app.js') }}"></script>
<script src="{{ mix('js/sparkline.js') }}"></script>
</head>
<body>

<svg class="sparkline" width="100" height="300" stroke-width="3"></svg>
<script>
sparkline.sparkline(document.querySelector(".sparkline"), [1, 5, 2, 4, 8, 3, 7]);
</script>
</body>
</html>

关于javascript - 编译 Laravel、Webpack 和 Sparkline 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56640085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com