【问题标题】:Where is the scriptsIn function in Laravel 5.4?Laravel 5.4 中的 scriptsIn 函数在哪里?
【发布时间】:2017-06-16 13:31:03
【问题描述】:

我使用Laravel 5.3 中的scriptsIn 函数来合并assets/js 文件夹中的所有Javascript 文件。我使用 AngularJS 1.x 框架来编写这种结构的 js 文件:

--resources\
-----assets\
--------js\
-----------app.js
-----------controllers\
-----------------....js
-----------directives\...

我在 Laravel 5.3 中将所有 js 文件与 Elixir 结合起来:

elixir(function(mix) {
    mix.sass('app.scss');
    mix.scriptsIn('resources/assets/js'); 
});

但是,当我升级到 Laravel 5.4 时,不支持 Elixir。相反,使用 Laravel Mix。因此,scriptsIn 不可用。 Laravel 5.4 中是否有任何具有相同目的的功能?如何合并所有的js文件?

【问题讨论】:

  • 您能解释一下scriptsIn() 的作用吗?
  • 或许能帮到你laravel.com/docs/5.4/helpers
  • @PaladiN: 我想将 assets/js 文件夹和子文件夹中的所有 js 文件合并到 app.js 并放入 public/js 文件夹
  • @IndreshTayal:助手中有什么功能?在Laravel 5.3 中,Elixir 在使用scriptsIn 函数运行gulp 命令时编译我的js 文件。但是,我在 Laravel 5.4 中没有找到这个功能。阅读更多laravel.com/docs/5.3/elixir

标签: javascript php angularjs laravel


【解决方案1】:

更新到5.4时遇到了同样的问题

elixir(function(mix) {
    mix.sass('app.scss');
    mix.scriptsIn('resources/assets/js'); 
});

现在变成:

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

mix.sass('app.scss')
   .combine('resources/assets/js');

【讨论】:

    【解决方案2】:

    我从您的评论中了解到,您想先将所有 JS 文件添加到 app.js,然后将其复制到 public/app.js。要执行此操作,请使用 a basic example。

    我正在从示例中提取一段代码。和以前一样简单:

    let mix = require('laravel-mix');
    
    mix.sass('src/app.sass', 'dist')
       .js('src/app.js', 'public');
    
    1. 将 Sass 文件 ./src/app.sass 编译为 ./public/app.sass
    2. 将./src/app.js 上的所有 JavaScript(和任何必需的模块)捆绑到 ./public/app.js。

    您可以将路径更改为您的目录结构。这应该对您有所帮助。

    您需要使用Webpack.mix.js中的代码。您可以查看 Laravel 5.4 中更新的配置文件。

    编辑:

    我对@9​​87654332@ 没有多少经验,但我对Angular2 有一些经验,我们需要在其中创建类并将其导出,Webpack 会自动将代码块和捆绑包放入它的 bundle.js 中。

    您可以查看为 angularjs 和 Webpack 提供的这些解决方案:

    https://stackoverflow.com/a/26497742/3887342

    https://stackoverflow.com/a/27500432/3887342

    【讨论】:

    • 我使用 Angularjs。我将var mainApp= angular.module('mainApp',[...]) 放在app.js 中,将控制器(例如mainApp.controller('somethingCtrl',...))放在单独的文件中。我没有任何代码可以将此控制器导入 app.js。您知道如何在通过Laravel Mix 捆绑之前将它们要求到 app.js 中吗?
    猜你喜欢
    • 2018-01-24
    • 2017-12-04
    • 1970-01-01
    • 1970-01-01
    • 2010-09-16
    • 2015-01-21
    • 1970-01-01
    相关资源
    最近更新 更多