gpt4 book ai didi

twitter-bootstrap - 在 CakePHP 3 中从供应商处加载 javascript 文件

转载 作者:行者123 更新时间:2023-12-03 12:23:08 26 4
gpt4 key购买 nike

我的问题是如何从 CakePHP 3.0 的供应商文件夹中加载 .js 文件。我已经通过 Composer 包含了 twitter Bootstrap 。 .js 文件位于/vendor/twbs/bootstrap-sass/assets/javascripts/文件夹中。我不想将它移动到 webroot,因为那样我会破坏 composer 提供的自动更新功能。有什么好的建议吗?我不想复制文件并失去 Composer 的好处......

最佳答案

我找到了解决方案!如果我正在使用 Composer ,为什么不使用它呢,对吧? :)

在 composer.json 中:

"scripts": {
"post-install-cmd": "App\\Console\\Installer::postInstall",
"post-update-cmd": "App\\Console\\Installer::postUpdate"
}

在 src/Console/Installer.php 中:
public static function postUpdate(Event $event) {
$io = $event->getIO();

$rootDir = dirname(dirname(__DIR__));

static::copyTwitterBootstrapFiles($rootDir, $io);
}

public static function copyTwitterBootstrapFiles($dir, $io) {

$bootstrapJsSource = $dir . '/vendor/twbs/bootstrap-sass/assets/javascripts/bootstrap.js';
$bootstrapJsDestination = $dir . '/webroot/js/bootstrap.js';

if (file_exists($bootstrapJsSource)) {
copy($bootstrapJsSource, $bootstrapJsDestination);
$io->write('Copied `bootstrap.js` file');
}

}

最后,如果您使用 git,请将 webroot/bootstrap.js 添加到 .gitignore。 postUpdate 在每个 composer update 命令之后运行,因此如果您想在每次实际包更新后运行脚本,只需使用 post-package-update 而不是 post-update-cmd。

关于twitter-bootstrap - 在 CakePHP 3 中从供应商处加载 javascript 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26736656/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com