javascript - Laravel-mix 6 - npm 脚本问题
问题描述
我已经从 laravel mix 5 升级到 6,但现在只有production
脚本在工作。development
并且watch
脚本无法正常工作,最后两个在 'public/build/dist/js' 而不是 'public/dist/js' 中生成它们的 javascript 输出,这与production
.
谁能检查我的 webpack.mix.js 并告诉我是否有任何问题或一些建议?
我的代码中的一些注释是因为 laravel-mix 网站指示
感谢您的帮助
const path = require('path')
const fs = require('fs-extra')
const mix = require('laravel-mix')
require('laravel-mix-versionhash')
mix
.js('resources/js/app.js', 'public/dist/js').vue({ version: 2 })
.sass('resources/sass/app.scss', 'public/dist/css')
.disableNotifications()
if (mix.inProduction()) {
mix
.versionHash()
} else {
mix.sourceMaps()
}
mix.webpackConfig({
resolve: {
extensions: ['.js', '.json', '.vue'],
alias: {
'~': path.join(__dirname, './resources/js')
}
},
output: {
chunkFilename: 'dist/js/[chunkhash].js',
// path: mix.config.hmr ? '/' : path.resolve(__dirname, './public/build')
path: path.resolve(__dirname, './public/build')
}
})
mix.then(() => {
// if (!mix.config.hmr) {
// process.nextTick(() => publishAseets())
// }
if (mix.inProduction()) {
process.nextTick(() => publishAseets())
}
})
function publishAseets () {
const publicDir = path.resolve(__dirname, './public')
if (mix.inProduction()) {
fs.removeSync(path.join(publicDir, 'dist'))
}
fs.copySync(path.join(publicDir, 'build', 'dist'), path.join(publicDir, 'dist'))
fs.removeSync(path.join(publicDir, 'build'))
}
解决方案
推荐阅读
- java - 如何为 `javax.validation.constraints` 注释添加自定义验证器?
- docker - 运行 `minikube start`,无法拉取 k8s.gcr 图像,但 `docker pull` 可以
- javascript - 模块名称是绑定中使用的阴影全局名称
- r - ggplotly 中的 Aes
- ios - 在 viewWillAppear 中设置约束
- javascript - VueJS,ReferenceError:谷歌未定义
- javascript - 将二维数组转换为对象数组
- python - wxPython 在运行时创建一个带有子列表的巨大可点击列表?
- javascript - 失败的道具类型:道具`children`在`InputAdornment`中标记为必填,但其值为`undefined`
- batch-file - 无法使用批处理脚本读取由 `wmic logicaldisk get name > D:\sample.txt` 生成的文本文件内容