转载自: yii2.0.15 使用 npm 替换 bower,加速 composer 安装速度 [ 2.0 版本 ]

  1. 修改 ommon/config/main.php
  1. <?php
  2. return [
  3. 'aliases' => [
  4. '@bower' => dirname(dirname(__DIR__)) . '/node_modules',
  5. '@npm' => dirname(dirname(__DIR__)) . '/node_modules',
  6. ],
  7. ];

这样类似 BootstrapPluginAsset 的 public $sourcePath = '@bower/bootstrap/dist'; 就会正确定位到 path/to/project/node_modules。

新增、修改 package.json,将 yii2 的 composer 依赖 bower-asset/* 转换为对应的 npm 包:

  1. {
  2. "private": true,
  3. "dependencies": {
  4. "jquery": "^2.2.4",
  5. "bootstrap": "3.3.7",
  6. "inputmask": "^3.3.11",
  7. "jquery-treegrid": "^0.3.0",
  8. "jquery-ui": "^1.12.1",
  9. "punycode": "^2.1.0",
  10. "typeahead.js": "^0.11.1",
  11. "yii2-pjax": "^2.0.7"
  12. },
  13. "devDependencies": {},
  14. "license": "BSD-3-Clause"
  15. }

再修改 composer.json

  1. {
  2. "provide": {
  3. "bower-asset/jquery": "*",
  4. "bower-asset/bootstrap": "*",
  5. "bower-asset/inputmask": "*",
  6. "bower-asset/punycode": "*",
  7. "bower-asset/typeahead.js": "*",
  8. "bower-asset/yii2-pjax": "*"
  9. },
  10. "scripts": {
  11. "post-install-cmd": [
  12. "yii\\composer\\Installer::postInstall",
  13. "yarn install"
  14. ],
  15. "post-create-project-cmd": [
  16. "yii\\composer\\Installer::postCreateProject",
  17. "yii\\composer\\Installer::postInstall",
  18. "yarn install"
  19. ]
  20. }

删除项目根目录下的 vendor 和 node_modules 文件夹后,将 composer 和 npm 都设置为使用国内的镜像源,执行:

  1. rm composer.lock # remove composer.lock if exist
  2. composer install

composer.json

  1. "config": {
  2. "process-timeout": 1800,
  3. "fxp-asset":{
  4. "installer-paths": {
  5. "npm-asset-library": "vendor/npm",
  6. "bower-asset-library": "vendor/bower"
  7. }
  8. }
  9. },

删除composer全局安装的包

How to remove globally a package from Composer?

  1. composer global remove <packagename>

如:

  1. composer global remove fxp/composer-asset-plugin

Yii2 使用 npm 安装的包的更多相关文章

  1. npm安装依赖包 --save-dev 和 --save; package.json的devDependencies和dependencies 的区别!

    以前一直在纠结一个npm安装的包依赖管理的问题.是这样的: 我们在使用npm install 安装模块或插件的时候,有两种命令把他们写入到 package.json 文件里面去,他们是:--save- ...

  2. vue项目用npm安装sass包遇到的问题及解决办法

    IDEA启动vue程序,浏览器访问时出现如下情况的关于node-sass的错误: 错误1: Module build failed (from ./node_modules/sass-loader/d ...

  3. npm 安装本地包

    npm install ../xxx 就行 如果报错,比如 1`Refusing to install  as a dependency of itself 说明你的本地模块没npm init ,也就 ...

  4. npm 安装全局包 不是内部或外部命令的问题

    场景: npm已经安装成功  ,通过npm install -g 安装的 全局包 提示不是内部或外部命令 第一步: npm list -g --depth=0:查看npm全局包的路径,和有哪些安装包 ...

  5. npm安装github包的方式

    直接在npm仓库进行安装 npm install kiana-js --save 直接利用用户名和仓库名进行安装 npm install easterCat/kiana-js 也可以在前面加上 git ...

  6. 小程序使用npm安装第三方包

    安装vant 小程序UI库 进到小程序目录,在地址栏中cmd 进入DOS界面  npm init -f  安装vant 小程序UI库 npm i vant-weapp -S --production ...

  7. npm 安装远程包(github的)

    npm install git+ssh://git@github.com:xxx/xxx.git#master --save-dev npm install git+ssh://git@github. ...

  8. 使用npm安装一些包失败了的看过来(npm国内镜像介绍)

    这个也是网上搜的,亲自试过,非常好用! 镜像使用方法(三种办法任意一种都能解决问题,建议使用第三种,将配置写死,下次用的时候配置还在): 1.通过config命令 npm config set reg ...

  9. Node.js 【使用npm安装一些包失败之笔记】

    镜像使用方法(三种办法任意一种都能解决问题,建议使用第三种,将配置写死,下次用的时候配置还在): 1.通过config命令 npm config set registry https://regist ...

随机推荐

  1. Array.prototype.slice.call()等几种将arguments对象转换成数组对象的方法

    网站搬迁,给你带来的不便敬请谅解! http://www.suanliutudousi.com/2017/10/10/array-prototype-slice-call%E7%AD%89%E5%87 ...

  2. Spring MVC源码分析(一):ContextLoaderListener的设计与实现

    ContextLoaderListener在我的Spring源码分析(一):从哪里开始看spring源码这篇文章,分析过在web容器,如tomcat,启动web应用时,会通过监听器的方式,通知Serv ...

  3. 第一周 Largest Rectangle in a Histogram

    Language: 题目: Largest Rectangle in a Histogram Time Limit: 1000MS   Memory Limit: 65536K Total Submi ...

  4. kibana 7.* 设置中文 汉化

    原文:kibana 7.* 设置中文 汉化 个人博客:forever121.cn kibana 一直是 日志分析 中得力的助手 由于 kibana5.* 6.* 官方并没有支持中文,需要另外下载补丁包 ...

  5. apache+tomcat配置负载均衡,实现http与websocket接口分压

    一.应用场景 在生产环境中,应用服务器(此文以tomcat为例)不免面临高访问量的压力,相比而言web服务器(此文以apache为例)能够承担更大的并发量.Apache本身带有一些模块,可以完成对应用 ...

  6. Android SDK中无法安装HAXM installer

    一.原因: 刚搭建好环境,当我想打开Android Studio 自带的模拟器时,出现如下:       /dev/kvm is not found 二.解决步骤: 1.点击File -- Setti ...

  7. springmvc Cacheable

    直接上代码: <cache:annotation-driven /> <bean id="cacheManager" class="org.spring ...

  8. boost asio acceptor 构造

    boost::asio::io_service io_svc; boost::asio::ip::address_v4 lis_ip; // 默认监听本机所有IP boost::asio::ip::t ...

  9. CSIC_716_20191127【组合,封装、类的私有属性方法、property装饰器】

    组合 what?   组合是指一个对象中,包含另一个或多个对象. why?      减少代码的冗余. How?     在类中加入其他类的对象,实现跨类对象之间的联动. 耦合度  软件设计要 高内聚 ...

  10. java zxing 生成条形码和二维吗

    依赖 <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</art ...