问题描述:npm update更新了下js包 laravel-mix由0.11更新到了1.16 webpack也由2更新到了3.5 复制了新的webpack.config.js到根目录 原有webpack.mix.js没有变动 运行npm run dev后总是提示找不到文件
webpack.mix.js内容我简化到了最简:
const mix = require('laravel-mix');
mix.js(['./resources/assets/js/app.js'], './public/js/app.js');
npm run出错代码:
cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress
95% emitting
DONE Compiled successfully in 9340ms
fs.js:641
return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
^
Error: ENOENT: no such file or directory, open '/app.js'
at Error (native)
at Object.fs.openSync (fs.js:641:18)
at Object.fs.readFileSync (fs.js:509:33)
at File.read (/var/www/node_modules/laravel-mix/src/File.js:180:19)
at File.version (/var/www/node_modules/laravel-mix/src/File.js:190:25)
at Manifest.hash (/var/www/node_modules/laravel-mix/src/Manifest.js:55:65)
at manifest.forEach.file (/var/www/node_modules/laravel-mix/src/plugins/CustomTasksPlugin.js:79:47)
at Array.forEach (native)
在webpack.mix.js中增加一行:
mix.setPublicPath(path.normalize('./public'));
之后可以成功打包 但是文件会被打包到根目录 而不是public目录
从来没有用过laravel-mix,
但是如果我碰到这种问题,在文档和搜索引擎都没有办法帮助我解决的时候,我会哪出大杀招,
去 node_modules 目录下,调试啊,
通过出错信息,可以看到
哪就去打开这个文件,大不了用console.log 一步步调试啊, 看看到底是为什么啊