自更新以来,Laravel mix 不会在生产模式下构建
Posted
技术标签:
【中文标题】自更新以来,Laravel mix 不会在生产模式下构建【英文标题】:Laravel mix won't build in production mode since update 【发布时间】:2021-01-21 12:39:47 【问题描述】:我正在一个非 Laravel 项目中运行 Laravel Mix,以编译一些 SASS + JS。
它工作正常,仍然处于npm run dev
模式,但npm run prod
崩溃:
aah@1.0.0 prod /var/www/path/to/aah cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --config=node_modules/laravel-mix/setup/webpack.config.js
ERROR 编译失败,出现 2 个错误15:50:46
./src/bootstrap.scss 中的错误
模块构建失败(来自 ./node_modules/css-loader/index.js): ModuleBuildError:模块构建失败(来自 ./node_modules/css-loader/index.js): 未闭合字符串 (11:115694)
(删除了几行很长的已编译 CSS!)
在 /var/www/.../aah/node_modules/webpack/lib/NormalModule.js:316:20
at /var/www/.../aah/node_modules/loader-runner/lib/LoaderRunner.js:367:11 at /var/www/.../aah/node_modules/loader-runner/lib/LoaderRunner.js:233:18 at context.callback (/var/www/.../aah/node_modules/loader-runner/lib/LoaderRunner.js:111:13) at Object.<anonymous> (/var/www/.../aah/node_modules/css-loader/lib/loader.js:44:18) at /var/www/.../aah/node_modules/css-loader/lib/processCss.js:214:4
webpack.mix.js
let mix = require('laravel-mix');
mix.js('src/bootstrap.js', 'aah/js/')
.js('src/aah.js', 'aah/js/')
.sass('src/bootstrap.scss', 'aah/css/')
.sass('src/civicrm.scss', 'aah/css/')
package.json
"dependencies":
"bootstrap-sass": "^3.4.1"
,
"devDependencies":
"cross-env": "^6.0.3",
"laravel-mix": "^5.0.5",
"node-sass": "^4.14.1",
"resolve-url-loader": "^3.1.1",
"sass-loader": "^8.0.2",
"vue-template-compiler": "^2.6.12"
【问题讨论】:
【参考方案1】:如果你更新 Laravel Mix 和你的包版本,它可以在 dev 和 prod 中工作。但是,当然,我不知道你的 JS 和 SCSS 内容是什么。
"private": true,
"scripts":
"dev": "npm run development",
"development": "mix",
"watch": "mix watch",
"watch-poll": "mix watch -- --watch-options-poll=1000",
"hot": "mix watch --hot",
"prod": "npm run production",
"production": "mix --production"
,
"devDependencies":
"axios": "^0.21.4",
"bootstrap-sass": "^3.4.1",
"cross-env": "^7.0.3",
"laravel-mix": "^6.0.31",
"node-sass": "^6.0.1",
"resolve-url-loader": "^4.0.0",
"sass": "^1.42.1",
"sass-loader": "^12.1.0",
"vue-template-compiler": "^2.6.14"
你的 ./src/bootstrap.scss 是什么样的?
【讨论】:
以上是关于自更新以来,Laravel mix 不会在生产模式下构建的主要内容,如果未能解决你的问题,请参考以下文章
Laravel mix / webpack 不会在通过 babel() 编译的脚本上触发监视功能