laravel 使用npm下包的问题

发布于 2022-09-11 15:45:45 字数 406 浏览 32 评论 0

刚从thinkphp5 转到laravel。遇到一些问题。

过去thinkphp做项目时前端包管理使用的是bower,直接放到public目录下,需要引用时直接script src引入就行.

现在laravel中下载前端包使用npm,放到目录node_modules目录,使用的blade模板文件在resources目录

clipboard.png

举个实际的案例,例如用npm 下载一个富文本编辑器 wangEditor,我如何在index.blade.php 中使用它?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

揪着可爱 2022-09-18 15:45:45

这个关系到 laravel-mix 将前端文件编译后引入的问题
1、在laravel项目目录下的 webpack.mix.js 文件中可看到 mix.js('resources/js/app.js', 'public/js'),意思是mix会将:resources/js/app.js 编译,在 public/js 下生成 app.js文件

2、所以要想引入 npm安装的包,得在 resources/js/app.js 中引入:
window._ = require('wangEditor'); //全局引入
或者 var wangEditor = require('wangEditor')
conlog.log(wangEditor); //在控制台查看是否引入成功
ps:
require() 会到 node_modules/ 下去找 wangEditor包,然后找到 wangEditor/package.json 中的 main 参数的值指向的路径,加载该文件;
这就是正确引入 npm安装包的方式

3、在 index.blade.php 模板中引入 mix编译后的文件 public/js/app.js:
<script src="{{ asset('js/app.js') }}" defer></script>

4、开启实时编译:
npm run watch

编译完成后,就能在浏览器的控制台查看到了

长梦不多时 2022-09-18 15:45:45

可以在 node_modules 下对应的包目录找到已经构建好的js文件,然后复制到public目录下使用。也可以去包的官网或者git下载构建好的包。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文