Подтвердить что ты не робот

Постоянно игнорировать зависимость с беседкой

Я загружаю angular, angular -bootstrap и bootstrap с беседкой. Bootstrap имеет зависимость от jquery, который установлен в процессе. Но мне это не нужно в моем проекте, так как я использую только bootstrap css.

Итак, я попытался навсегда удалить зависимость от jquery с помощью

bower uninstall jquery --save

Это удаление jquery, но в следующий раз, когда я сделаю bower update, он снова загрузится.

Есть ли способ сообщить игроку постоянно пропустить зависимость?

edit: Я хотел бы что-то вроде этого:

"resolutions": {
    "jquery": "no, thanks"
}
4b9b3361

Ответ 1

Pull request # 1394 добавила официальную поддержку для этой функции и присутствует в версии 1.6.3 и ниже. Проверьте свою версию с помощью bower -v и запустите npm install -g bower для обновления.

Для справки см. официальный документ .bowerrc. Если это не сработает для вас, укажите проблему с bower, потому что это ошибка.

Мы используем его в нашем .bowerrc, например:

{
  "ignoredDependencies": [
    "bootstrap",
    "bootstrap-sass",
    "bootstrap-sass-official"
  ]
}

Ответ 2

У нас была аналогичная ситуация, когда у нас была Backbone зависимость от Underscore в ее bower.json, но вместо этого мы используем Lo-Dash, поэтому Bower излишне вытягивал Underscore для каждой установки. У нас есть автоматические проверки соответствия сторонних лицензий, поэтому мы не хотели ничего, что мы действительно не использовали.

Я понимаю, что это не совсем то, для чего они предназначены, но Bower install-hooks можно использовать для очистки ненужных отпечатков post- установите (по крайней мере, до тех пор, пока Bower не получит такое разрешение "спасибо", на которое вы намекали). В .bowerrc:

{
    "directory": "app/bower_components",
    "scripts": {
        "postinstall": "rm -rf app/bower_components/underscore"
    }
}

Это немного взломать, но работает.

Ответ 3

Что-то, что вы можете сделать и в файле bower.json:

{
  "dependencies": {
    ...
    "bootstrap": "^3.2.0"
  }
  "overrides": {
    "bootstrap": {
      "dependencies": []
    }
  }
}

Это означает: удалить все зависимостей boostrap, что вам нужно, поскольку jquery является единственным (вы можете проверить с помощью bower info bootstrap)

Ответ 4

Добавьте его в свой .gitignore, если вы зафиксируете свои зависимости. В противном случае оставьте его, поскольку это не имеет значения. Вы должны просто использовать то, что вам нужно, и игнорировать остальных.

Ответ 5

Вышеуказанные ответы верны, но дополнительным решением является использование wiredep, как описано в этом ответе:

grunt-bower-install: исключить определенные компоненты

После установки grunt-wiredep вы можете добавить что-то похожее на это в свой Grunt.js, чтобы исключить jquery из вставки:

// Automatically inject Bower components into the app
wiredep: {
  options: {},
  app: {
    src: ['<%= my.app %>/index.html'],
    exclude: ['bower_components/jquery']
  }
},

Bower все равно загрузит jquery, но, по крайней мере, вы можете сказать, что он не будет включен в HTML src.

Ответ 6

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Это не устраняет вашу конкретную проблему, но помогло мне, поэтому, возможно, это поможет другим людям.

Я использую grunt-bower-task, чтобы вытащить файлы в каталог lib. Я хотел исключить "angular" и просто включить "angular.js". Одна из моих зависимостей заключалась в "angular" . В моем bower.json у меня теперь есть:

{
  "name": "myapp",
  "version": "0.0.1",
  "dependencies": {
    "angular.js": "1.3.15",
    "angular-bootstrap": "0.13.0",
    "angular-cookies": "1.3.15",
    "angular-storage": "0.5.0",
    "angular-ui-router": "0.2.15",
    "mjolnic-bootstrap-colorpicker": "2.1"
  },
  "exportsOverride": {
    "angular": {
      "dump": "*.xxx"
    },
    "angular.js": {
      "js": [ "*.js", "*.js.map" ],
      "css": "*.css"
    }
  },
  "resolutions": {
    "angular": "1.3.15"
  }
} 

В моем gruntfile.js у меня есть:

bower: {
    install: {
        options: {
            targetDir: './lib',
            layout: 'byType',
            install: true,
            cleanTargetDir: true,
            cleanBowerDir: false
        }
    }
},

Это останавливает копирование файлов "angular" в пункт назначения.