当使用 Laravel mix 5.0.9 (
npm run dev
) 在 Laravel 项目中进行开发构建时,.js
输出文件充满了__webpack_require__
函数调用,可以看到从“resources/”文件夹导入文件。
但是,除了相对于项目根目录的实际路径字符串之外,还有一条注释显示当前计算机的全局目录路径。
这些正在使我的 CI/CD 管道,认为有更改,并执行不必要的步骤,即使认为实际代码没有更改,例如在已部署的同一提交上触发构建时。
如何禁用这些绝对路径注释,并使构建仅使用相对于项目根目录的路径?因此构建在不同机器上保持一致。
terser.extractComments: true
(或terser.terserOptions.output.comments: false
)什么都不做TerserPlugin
插入mix.webpackConfig
,确实会构建产品,再加上将文档注释提取到单独的.txt
文件中,并且id无法真正弄清楚如何仅提取注释并禁用其他所有内容。resourceRoot
没有改变输出(甚至不知道是否应该改变,但我已经过了工作时间1小时了,不再有任何想法了:D)ps。它不会发生在
prod
构建上,但我确实需要构建为临时环境的开发者
我找到了一个不太漂亮但有效的解决方案(它相当脆弱,但应该很容易适应不同的环境),我所做的是在替换的包上添加一个
postdev
post-script带一个点的完整项目路径:
{
"scripts": {
"postdev": "sed -i \"s:$(pwd):.:\" public/**/*.js"
}
}
它使用
sed
代替自定义分隔符 :
,以便更轻松地使用路径。