本地安装OroCommerce时出现npm assets安装失败运行时异常问题咨询
安装OroCommerce出现npm资产安装失败问题说明
操作流程
在本地开发环境参照第三方教程安装OroCommerce,执行以下命令后弹出配置项:
composer create-project oro/commerce-crm-application oroshop
配置项内容如下:
database_driver (pdo_mysql): database_host ('%env(ORO_DB_HOST)%'): localhost database_port ('%env(ORO_DB_PORT)%'): 3306 database_name ('%env(ORO_DB_NAME)%'): orocomm database_user ('%env(ORO_DB_USER)%'): orocomm database_password ('%env(ORO_DB_PASSWORD)%'): s0m€$€cretP@$$w0rD database_server_version ('%env(ORO_DB_VERSION)%): database_driver_options ({ }): mailer_transport ('%env(ORO_MAILER_DRIVER)%'): mailer_host ('%env(ORO_MAILER_HOST)%'): mailer_port ('%env(ORO_MAILER_PORT)%'): mailer_encryption ('%env(ORO_MAILER_ENCRYPTION)%'): mailer_user ('%env(ORO_MAILER_USER)%'): mailer_password ('%env(ORO_MAILER_PASSWORD)%'): websocket_bind_address (0.0.0.0): websocket_bind_port (8080): websocket_frontend_host (''): websocket_frontend_port (8080): websocket_frontend_path (''): websocket_backend_host (''): websocket_backend_port (8080): websocket_backend_path (''): websocket_backend_transport (tcp): websocket_backend_ssl_context_options ({ }): web_backend_prefix (/admin): /admin_blurp session_handler (session.handler.native_file): secret ('%env(ORO_SECRET)%'): installed (null): assets_version (null): assets_version_strategy (time_hash): message_queue_transport (dbal): message_queue_transport_config (null): enable_price_sharding ('%env(bool:ORO_ENABLE_PRICE_SHARDING)%'): deployment_type (null): liip_imagine.jpegoptim.binary (null): liip_imagine.pngquant.binary (null): env(ORO_DB_HOST) (127.0.0.1): env(ORO_DB_PORT) (null): 3306 env(ORO_DB_NAME) (b2b_crm_dev): orocomm env(ORO_DB_USER) (root): orocomm env(ORO_DB_PASSWORD) (null): s0m€$€cretP@$$w0rD env(ORO_DB_VERSION) (null): env(ORO_MAILER_DRIVER) (sendmail): env(ORO_MAILER_HOST) (127.0.0.1): env(ORO_MAILER_PORT) (null): env(ORO_MAILER_ENCRYPTION) (null): env(ORO_MAILER_USER) (null): env(ORO_MAILER_PASSWORD) (null): env(ORO_SECRET) (ThisTokenIsNotSoSecretChangeIt): env(ORO_ENABLE_PRICE_SHARDING) ('0'):
配置完成后触发Failed to install npm assets运行时异常,日志片段如下:
2001 silly tarball no local data for browserslist@4.16.7. Extracting by manifest. 2002 http fetch GET 200 https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz 602ms 2003 silly tarball trying no-case@2.3.2 by hash: sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== 2004 silly tarball trying resolve-cwd@2.0.0 by hash: sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= 2005 silly extractTree global-prefix@3.0.0 -> /var/www/oroshop/node_modules/global-modules/node_modules/global-prefix 2006 silly extractTree ansi-styles@3.2.1 -> /var/www/oroshop/node_modules/ansi-styles 2007 silly extractTree escape-string-regexp@1.0.5 -> /var/www/oroshop/node_modules/escape-string-regexp 2008 silly extractTree supports-color@5.5.0 -> /var/www/oroshop/node_modules/chalk/node_modules/supports-color 2009 silly extractTree has-flag@3.0.0 -> /var/www/oroshop/node_modules/has-flag 2010 silly extract debug@4.1.1 extracted to /var/www/oroshop/node_modules/socket.io/node_modules/debug (1113ms) 2011 silly extract postcss-value-parser@4.1.0 extracted to /var/www/oroshop/node_modules/postcss-modules-local-by-default/node_modules/postcss-value-parser > 2012 silly tarball trying pkg-dir@3.0.0 by hash: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== 2013 silly tarball trying ansi-styles@3.2.1 by hash: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 2014 silly tarball trying escape-string-regexp@1.0.5 by hash: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 2015 silly tarball trying has-flag@3.0.0 by hash: sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 2016 silly extractTree ms@2.1.2 -> /var/www/oroshop/node_modules/ms 2017 silly extract camel-case@3.0.0 extracted to /var/www/oroshop/node_modules/camel-case (818ms) 2018 silly extract js-yaml@3.13.1 extracted to /var/www/oroshop/node_modules/js-yaml (2091ms) 2019 silly extract cross-spawn@6.0.5 extracted to /var/www/oroshop/node_modules/webpack-cli/node_modules/cross-spawn (818ms) 2020 silly tarball no local data for no-case@2.3.2. Extracting by manifest. 2021 silly tarball no local data for resolve-cwd@2.0.0. Extracting by manifest. 2022 silly tarball trying global-prefix@3.0.0 by hash: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== 2023 silly tarball trying supports-color@5.5.0 by hash: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 2024 silly tarball trying ms@2.1.2 by hash: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 2025 silly extractTree upper-case@1.1.3 -> /var/www/oroshop/node_modules/upper-case 2026 silly extractTree argparse@1.0.10 -> /var/www/oroshop/node_modules/argparse 2027 silly extractTree esprima@4.0.1 -> /var/www/oroshop/node_modules/esprima 2028 silly extractTree nice-try@1.0.5 -> /var/www/oroshop/node_modules/nice-try 2029 silly extractTree path-key@2.0.1 -> /var/www/oroshop/node_modules/path-key 2030 silly extractTree semver@5.7.1 -> /var/www/oroshop/node_modules/webpack-cli/node_modules/semver 2031 silly extractTree shebang-command@1.2.0 -> /var/www/oroshop/node_modules/shebang-command 2032 silly extract engine.io@3.5.0 extracted to /var/www/oroshop/node_modules/engine.io (1192ms) 2033 silly extract object.getownpropertydescriptors@2.1.2 extracted to /var/www/oroshop/node_modules/object.getownpropertydescriptors (1115ms) 2034 silly tarball no local data for pkg-dir@3.0.0. Extracting by manifest. 2035 silly tarball no local data for ansi-styles@3.2.1. Extracting by manifest. 2036 silly tarball no local data for escape-string-regexp@1.0.5. Extracting by manifest. 2037 silly tarball no local data for has-flag@3.0.0. Extracting by manifest. 2038 silly tarball trying upper-case@1.1.3 by hash: sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= 2039 silly tarball trying argparse@1.0.10 by hash: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
问题原因
- Node.js/npm版本不兼容:OroCommerce 4.2仅兼容Node.js 12.x、14.x版本,使用16.x及以上版本会导致依赖解析冲突,安装中断
- 目录权限不足:/var/www/oroshop目录无当前执行用户的写入权限,npm无法正常创建node_modules目录或写入依赖文件
- npm源访问不稳定:默认官方npm源访问延迟高,部分依赖包拉取超时导致安装失败
- 系统缺少编译依赖:缺少build-essential、python2等基础编译工具,带原生扩展的npm包无法完成编译安装
解决方案
- 切换到兼容的Node.js版本
使用nvm安装并切换到14.x长期支持版本:
nvm install 14 nvm use 14
执行node -v确认版本为14.x系列即可。
2. 修正项目目录权限
给当前用户分配项目目录的完整读写权限:
sudo chown -R $USER:$USER /var/www/oroshop chmod -R 755 /var/www/oroshop
- 切换npm镜像源,清理缓存后手动安装依赖
npm config set registry https://registry.npmmirror.com npm cache clean --force cd /var/www/oroshop npm install
- 安装系统必备编译依赖
Ubuntu环境执行以下命令安装依赖:
sudo apt update sudo apt install -y build-essential python2
- 手动完成资产构建后继续安装流程
npm依赖安装完成后执行前端资产构建:
npm run build
构建成功后执行OroCommerce安装命令继续后续流程即可:
php bin/console oro:install --env=prod
内容的提问来源于stack exchange,提问作者Zunayed
相关产品推荐
相关产品推荐

