Laravel 根目录更新,npm run dev 在错误目录中创建 app.css 和 app.js

Posted

技术标签:

【中文标题】Laravel 根目录更新,npm run dev 在错误目录中创建 app.css 和 app.js【英文标题】:Laravel root directory updated, npm run dev creating app.css and app.js in wrong directory 【发布时间】:2021-09-03 05:57:30 【问题描述】:

我正在做一个项目,我必须将 Laravel 的根目录移动到 src 文件夹中。并将public文件夹的内容移动到根目录下。

我的新文件夹结构是这样的。

项目名 |css目录 |js 目录 |索引.php |源代码-> |应用 |引导 |配置 |数据库 |节点模块 |资源 |路线 |存储 |路线 |存根 |供应商 |.env |作曲家.json |作曲家.lock |package.lock |package.json |服务器.php |webpack.mix.js |工匠

我已将根目录下index.php 文件中的路径更新为以下内容。

<?php

define('LARAVEL_START', microtime(true));

// require __DIR__.'/../vendor/autoload.php';
require __DIR__.'/src/vendor/autoload.php';

// $app = require_once __DIR__.'/../bootstrap/app.php';
$app = require_once __DIR__.'/src/bootstrap/app.php';


$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);

$response = $kernel->handle(
    $request = Illuminate\Http\Request::capture()
);

$response->send();

$kernel->terminate($request, $response);

现在,当我在src 文件夹下运行npm install 命令时,它可以正常工作,php artisan 也可以正常工作。 但是,当我运行 npm run devnpm run production 时。

它在src 目录中创建一个新的public 目录,并在其中创建新的app.js 和app.css 文件。这不是必需的。

根据我的新目录结构,它们现在应该分别位于 css 和 js 文件夹下的根目录中。

webpack.mix.js

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

mix.js('resources/js/app.js', 'js')
    .vue()
    .sass('resources/sass/app.scss', 'css');

请帮忙。

提前致谢。 ????

【问题讨论】:

@matiaslauriti,此评论部分仅用于回答问题或与问题相关的查询。所以,请坚持这个问题。现在,回答您的问题,如果构建了框架,那么它的结构可以改变,那为什么不呢。如果给定的结构不能满足某人的要求。 【参考方案1】:

您可以使用mix.setPublicPath() 将输出文件混合到父目录:

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

mix.setPublicPath('../../') // project root path
    .js('resources/js/app.js', 'js')
    .vue()
    .sass('resources/sass/app.scss', 'css');

【讨论】:

以上是关于Laravel 根目录更新,npm run dev 在错误目录中创建 app.css 和 app.js的主要内容,如果未能解决你的问题,请参考以下文章

如何修复 laravel 6 中的错误 npm run dev

Laravel 8 - scss 和 npm run dev 的问题

新 Laravel 5.4 上的“npm run dev”命令出错

为啥我不能在 Laravel 7 中成功运行 npm run dev?

Laravel:自定义 css 文件的 npm run dev 失败

npm run dev 仅使用 Nodejs?