covert Yii2 npm-asset
or bower-asset
to package.json
, so that Foxy can install.
composer require kriss/foxy-yii2-convert -vvv
- 在
composer.json
中增加provide
以跳过安装npm-asset
orbower-asset
如下:
{
"provide": {
"bower-asset/bootstrap": "*",
"bower-asset/jquery": "*",
"bower-asset/inputmask": "*",
"bower-asset/punycode": "*",
"bower-asset/yii2-pjax": "*",
"npm-asset/wangeditor": "*",
"npm-asset/webuploader": "*",
"bower-asset/typeahead.js": "*"
},
}
-
如果你项目中使用 composer-asset-plugin 或者 asset-packagist,请移除
-
安装依赖
-
修改 Yii2 的 npm 和 bower 别名指向
如下:
'aliases' => [
'@bower' => '@project/node_modules',
'@npm' => '@project/node_modules',
],
Q: 如果有个包我不想通过 npm 安装?
A: 像 almasaeed2010/adminlte, 它可以用 composer 安装, 可以配置 composer.json 如下:
"config": {
"foxy": {
"enabled": true,
"manager": "yarn",
"enable-packages": {
"almasaeed2010/adminlte": false, // 此处
"*": true // 确保这个放在最后
}
}
},
Q: 如果一个包内自带
package.json
,并且仅仅是用于开发环境(即我不需要它)?
A: 像 kartik-v/dependent-dropdown, 可以配置 composer.json 如下:
"config": {
"foxy": {
"enabled": true,
"manager": "yarn",
"enable-packages": {
"kartik-v/dependent-dropdown": false, // 此处
"*": true // 确保这个放在最后
}
}
},
Q: 如果一个包在 npm 中和 brower 中非一致的名字?