这里有很多关于 Laravel Mix 的讨论,所以我将把它留在这里以帮助未来的读者。我通过创建一个单独的(假的)webpack 配置文件解决了这个问题,该文件仅供我的 IDE(PHPStorm)使用。
1.创建一个单独的alias.js 文件 (例如/webpack/alias.js)
const path = require('path');
const assets = path.join(__dirname,'..','resources','assets');
module.exports = {
'@js' : path.resolve(assets, 'js'),
'@c' : path.resolve(assets, 'js', 'components'),
'@errors' : path.resolve(assets, 'js', 'errors'),
'@utils' : path.resolve(assets, 'js', 'utils'),
'@store' : path.resolve(assets, 'js', 'store'),
'@api' : path.resolve(assets, 'js', 'api'),
'@less' : path.resolve(assets, 'less')
}
2。要求将alias.js 文件放入webpack.mix.js
const mix = require('laravel-mix');
mix.alias(require('./webpack/alias'))
// ... The rest of your mix, e.g.
.js('app.js')
.vue()
.less('app.less');
3.为你的 IDE 创建虚假的 webpack 配置 (例如 /webpack/ide.config.js)
在这里,导入 laravel-mix webpack 配置,加上您的别名,以及 IDE 可能需要帮助查找的任何其他配置。 还包括前缀 ~ 别名,用于将样式导入 Vue 组件。
/*
|--------------------------------------------------------------------------
| A fake config file for PhpStorm to enable aliases
|--------------------------------------------------------------------------
|
| File > Settings... > Languages & Frameworks > Javascript > Webpack
|
| Select "Manually" and set the configuration file to this
|
*/
const path = require('path');
const mixConfig = require('./../node_modules/laravel-mix/setup/webpack.config')();
module.exports = {
...mixConfig,
resolve: {
alias: {
...require('./alias'),
'~@less' : path.resolve('@less'), // <--
},
...mixConfig.resolve
}
}
4.将您的 IDE 设置为使用 webpack/ide.config.js 作为您的 webpack 配置文件。