【问题标题】:Laravel Mix npm run development errorLaravel Mix npm 运行开发报错
【发布时间】:2019-01-27 13:11:39
【问题描述】:

我尝试使用npm run development,但我变成了跟随错误。

无效的配置对象。 Webpack 已使用与 API 模式不匹配的配置对象进行初始化。
 - configuration.entry 应该是以下之一:
   对象 { : 非空字符串 | [非空字符串] } |非空字符串 | [非空字符串] |功能
   -> 编译的入口点。
   细节:
    * configuration.entry['/js/app'] 应该是一个字符串。
      -> 字符串被解析为启动时加载的模块。
    * configuration.entry['/js/app'] 不应包含两次 '.../resources/assets/sass/app.scss' 项。
    * configuration.entry 应该是一个字符串。
      -> 一个没有名字的入口点。该字符串被解析为在启动时加载的模块。
    * configuration.entry 应该是一个数组:
      [非空字符串]
    * configuration.entry 应该是函数的一个实例
      -> 一个函数返回一个入口对象、一个入口字符串、一个入口数组或对这些东西的承诺。

我的 webpack.mix.js

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

/*
 |--------------------------------------------------------------------------
 | Mix Asset Management
 |--------------------------------------------------------------------------
 |
 | Mix provides a clean, fluent API for defining some Webpack build steps
 | for your Laravel application. By default, we are compiling the Sass
 | file for the application as well as bundling up all the JS files.
 |
 */

mix.scripts([
    'public/assets/js/jquery-3.3.1.min.js',
    'public/assets/js/popper.min.js',
    'public/assets/js/bootstrap.min.js',
    'public/assets/js/moment.min.js',
    'public/assets/js/sweetalert.min.js',
    'public/assets/js/delete.handler.js',
    'public/assets/plugins/js-cookie/js.cookie.js',
    'public/vendor/jsvalidation/js/jsvalidation.js',
    'public/assets/plugins/bootstrap-datepicker/bootstrap-datepicker.min.js',
    'public/assets/plugins/croppie/croppie.js'
], 'public/assets/js/vendor.js');

mix.styles([
    'public/assets/css/fontawesome-all.min.css',
    'public/assets/plugins/bootstrap-datepicker/bootstrap-datepicker.min.css',
    'public/assets/plugins/croppie/croppie.css',
], 'public/assets/css/vendor.css');

mix.sass('resources/assets/sass/app.scss', 'public/assets/css');

mix.copy('node_modules/toastr/build/toastr.min.js', 'public/vendor/toastr/toastr.min.js'); 

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

if (mix.inProduction()) {
    mix.version();
}

【问题讨论】:

  • 你能出示你的webpack.mix.js文件吗?
  • 我已经用我的 webpack.mix.js 更新了问题
  • 是的,npm install 运行没有错误
  • 错误实际上是... should not contain the item '.../resources/assets/sass/app.scss' twice. 我认为你应该考虑解决这个问题。一般来说,您可以简单地从混合文件中删除块,以确定是否有任何定义导致错误
  • 你用的是什么版本的 webpack 和 mix?

标签: laravel npm vue.js npm-install laravel-mix


【解决方案1】:

与其复制所有包(jQuery、Popper、Bootstrap、Moment),不如编译大部分资产?

npm i jquery
npm i bootstrap
npm i @fortawesome/fontawesome-free
npm i moment, etc.

然后在您的/resources/js/bootstrap.js 中,您可以包含这些包。

try {
    window.Popper = require('popper.js').default;
    window.$ = window.jQuery = require('jquery');

然后运行。

npm run prod

【讨论】:

    猜你喜欢
    • 2019-02-26
    • 2022-11-28
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    • 2017-08-12
    • 2019-11-20
    • 2021-11-30
    • 2020-05-31
    相关资源
    最近更新 更多