从 laravel mix v5 dev build 中的 __webpack_require__ 中删除源路径注释

问题描述 投票:0回答:1

当使用 Laravel mix 5.0.9 (

npm run dev
) 在 Laravel 项目中进行开发构建时,
.js
输出文件充满了
__webpack_require__
函数调用,可以看到从“resources/”文件夹导入文件。

但是,除了相对于项目根目录的实际路径字符串之外,还有一条注释显示当前计算机的全局目录路径。

这些正在使我的 CI/CD 管道,认为有更改,并执行不必要的步骤,即使认为实际代码没有更改,例如在已部署的同一提交上触发构建时。

如何禁用这些绝对路径注释,并使构建仅使用相对于项目根目录的路径?因此构建在不同机器上保持一致。

我已经尝试过了

  • 没有使用 mix uglify 选项来删除评论的变化
  • 混合选项
    terser.extractComments: true
    (或
    terser.terserOptions.output.comments: false
    )什么都不做
  • 在没有配置的情况下通过
    TerserPlugin
    插入
    mix.webpackConfig
    ,确实会构建产品,再加上将文档注释提取到单独的
    .txt
    文件中,并且id无法真正弄清楚如何仅提取注释并禁用其他所有内容。
  • 设置
    resourceRoot
    没有改变输出(甚至不知道是否应该改变,但我已经过了工作时间1小时了,不再有任何想法了:D)

ps。它不会发生在

prod
构建上,但我确实需要构建为临时环境的开发者

javascript laravel webpack laravel-mix
1个回答
0
投票

我找到了一个不太漂亮但有效的解决方案(它相当脆弱,但应该很容易适应不同的环境),我所做的是在替换的包上添加一个

postdev
post-script带一个点的完整项目路径:

{
  "scripts": {
    "postdev": "sed -i \"s:$(pwd):.:\" public/**/*.js"
  }
}

它使用

sed
代替自定义分隔符
:
,以便更轻松地使用路径。

© www.soinside.com 2019 - 2024. All rights reserved.