Mit welchem CLI Befehl werden meine js Änderungen aktiviert?

Hallo,
Welches CLI Befehl soll ich nutzen, wenn ich eine neue js Datei im plugin erstellt habe oder Änderungen mache ? bei shopware 5 war einfach übers backend kompilieren. wie ist das bei shopware 6 ? Ich weiss nur, dass bei scss Änderungen nutzt man theme:compile, wie ist das denn bei js Änderungen ? Danke

./bin/build-storefront.sh

Hallo @Max_Shop , ich bekomme folgende Antwort im ssh , ist das so korrekt ? danke.

ssh-w0119997@dd38202:/www/htdocs/w0119997/exampleshop.com$ php74 ./bin/build-storefront.sh

CWD="$(cd -P -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd -P)"

export PROJECT_ROOT="${PROJECT_ROOT:-"$(dirname "$CWD")"}"
STOREFRONT_ROOT="${STOREFRONT_ROOT:-"${PROJECT_ROOT}/vendor/shopware/storefront"}"

BIN_TOOL="${CWD}/console"

if [[ ${CI} ]]; then
    BIN_TOOL="${CWD}/ci"
    chmod +x "$BIN_TOOL"
fi

# build storefront
[[ ${SHOPWARE_SKIP_BUNDLE_DUMP} ]] || "${BIN_TOOL}" bundle:dump

if [[ $(command -v jq) ]]; then
    OLDPWD=$(pwd)
    cd "$PROJECT_ROOT" || exit

    jq -c '.[]' "var/plugins.json" | while read -r config; do
        srcPath=$(echo "$config" | jq -r '(.basePath + .storefront.path)')

        # the package.json files are always one upper
        path=$(dirname "$srcPath")
        name=$(echo "$config" | jq -r '.technicalName' )

        if [[ -f "$path/package.json" && ! -f "$path/node_modules" && $name != "storefront" ]]; then
            echo "=> Installing npm dependencies for ${name}"

            if [[ -f "$path/package-lock.json" ]]; then
                npm clean-install --prefix "$path"
            else
                npm install --prefix "$path"
            fi
        fi
    done
    cd "$OLDPWD" || exit
else
    echo "Cannot check extensions for required npm installations as jq is not installed"
fi

npm --prefix "${STOREFRONT_ROOT}"/Resources/app/storefront clean-install
node "${STOREFRONT_ROOT}"/Resources/app/storefront/copy-to-vendor.js
npm --prefix "${STOREFRONT_ROOT}"/Resources/app/storefront run production
[[ ${SHOPWARE_SKIP_ASSET_COPY} ]] ||"${BIN_TOOL}" asset:install
[[ ${SHOPWARE_SKIP_THEME_COMPILE} ]] || "${BIN_TOOL}" theme:compile

Nein.

Du musst es als SH ausführen, nicht per PHP.

./bin/build-storefront.sh

oder

sh ./bin/build-storefront.sh

das php47 steht nur für die phpversion, wenn ich ohne php47 das ausführen möchte, dann bekomme ich folgende Fehlermeldung.

Your cli is running PHP version 7.2.34-nmm4 but Shopware 6 requires at least PHP 7.4.0
Cannot check extensions for required npm installations as jq is not installed
./bin/build-storefront.sh: line 44: npm: command not found
./bin/build-storefront.sh: line 45: node: command not found
./bin/build-storefront.sh: line 46: npm: command not found
Your cli is running PHP version 7.2.34-nmm4 but Shopware 6 requires at least PHP 7.4.0
Your cli is running PHP version 7.2.34-nmm4 but Shopware 6 requires at least PHP 7.4.0

also ich muss php47 am anfang schreiben um den Befehl ausführen zu können

Wenn du php am Anfang schreibst, dann wird die Datei mit php ausgeführt. Es ist aber eine sh Datei und muss entsprechend mit sh ausgeführt werden.

Einfach die CLI auf php 7.4 umstellen.

@Max_Shop Das habe ich gemacht, ich bekomme folgende Respond

ssh-w0119997@dd38202:/www/htdocs/w0119997/orderandfriends.com$ sh ./bin/build-storefront.sh

                                                                                                                        
 [OK] Dumped plugin configuration.                                                                                      
                                                                                                                        

Cannot check extensions for required npm installations as jq is not installed
./bin/build-storefront.sh: line 44: npm: command not found
./bin/build-storefront.sh: line 45: node: command not found
./bin/build-storefront.sh: line 46: npm: command not found
Copying files for bundle: FrameworkBundle
Copying files for bundle: MonologBundle
Copying files for bundle: SensioFrameworkExtraBundle
Copying files for bundle: TwigBundle
Copying files for bundle: WebProfilerBundle
Copying files for bundle: DebugBundle
Copying files for bundle: EnqueueBundle
Copying files for bundle: EnqueueAdapterBundle
Copying files for bundle: Framework
Copying files for bundle: System
Copying files for bundle: Content
Copying files for bundle: Checkout
Copying files for bundle: Profiling
Copying files for bundle: Administration
Copying files for bundle: Storefront
Copying files for bundle: Elasticsearch
Copying files for bundle: Maintenance
Copying files for bundle: SwagLanguagePack
Copying files for bundle: SwagPayPal
Copying files for bundle: SwagMarkets
Copying files for bundle: KlarnaPayment
Copying files for bundle: SwagAmazonPay
Copying files for bundle: SwagExtensionStore
Copying files for bundle: iwaveNeusichtTheme
Copying files for bundle: gstaSlimFooter
Copying files for bundle: TwpStarterPack
Copying files for bundle: DbalKernelPluginLoader
Copying files for bundle: Recovery

                                                                                                                        
 [OK] Successfully copied all bundle files                                                                              
                                                                                                                        

Start theme compilation

 Compiling theme for sales channel for : 41b14ab6bbc7427c8100fabbfaedb19a                                               

 ! [NOTE] Took 2.148603 seconds                                                                                         

ssh-w0119997@dd38202:/www/htdocs/w0119997/orderandfriends.com$ 

ganz oben steht aber
Cannot check extensions for required npm installations as jq is not installed ./bin/build-storefront.sh: line 44: npm: command not found ./bin/build-storefront.sh: line 45: node: command not found ./bin/build-storefront.sh: line 46: npm: command not found

ist das einproblem oder normal ? Danke

Wie es aussieht ist kein node und npm auf deinem Server installiert. Das wird vermutlich das kompilieren der js verhindern. Entsprechend wird die Änderungen des JS-Codes auch vermutlich nicht im Frontend sichtbar sein.

Bin mir nicht ganz sicher ob es die einzige Möglichkeit ist, aber du musst dir eine (lokal) Umgebung suchen in der node und npm verfügbar sind um entsprechenden kompilierte js zu erhalten.

1 Like