在bower.json中将包从devdependencies移动到依赖项的最佳方法是什么?

时间:2015-02-15 18:42:55

标签: angularjs bower bower-install

我一直在研究一个角度项目,每当我想要一个新包时,我手动编辑了bower.json并将包添加到devdependencies然后运行bower install以安装依赖项。

我从未真正查看过我添加它的部分的名称,但最近我运行bower install <somepackage> -S并创建了一个名为dependencies的新部分。噢噢噢!他们应该去那里。

我查了一下,显然devdependencies用于开发依赖项,并且可以在生成构建期间排除,主要用于支持测试等的软件包。但是dependencies包含在dev和生产构建,适用于最终生产构建的包。

所以现在我在devdependencies下有很多“生产”包。什么是将它们移动到dependencies而不破坏任何东西的最佳方法?

1 个答案:

答案 0 :(得分:0)

凉亭中的依赖性将安装到您的bower_components文件夹,无论您是否将其标记为开发依赖项。 Bower将始终在bower_components文件夹中填写dependancies中列出的内容,并根据您的说明,可能会列出devDependancies中列出的内容。在您的情况下,如果您知道开发只需要哪些包,您只需将它们移动到适当的对象即可。如果您现在根据devDependancies中的相关信息为您提供服务,那么如果您将其移至dependancies则不会有任何损失。

例如

{
  ...
  "dependencies": {
    "angular": "1.5.11",
    "angular-resource": "1.5.11",
    "angular-sanitize": "1.5.11",
    "babel-core": "^6.26.0",
    "babel-preset-es2015": "^6.24.1",
    "gulp": "^3.9.1"
  }
}

会变成

{
  ...
  "devDependencies" {
    "babel-core": "^6.26.0",
    "babel-preset-es2015": "^6.24.1",
    "gulp": "^3.9.1"
  },
  "dependencies": {
    "angular": "1.5.11",
    "angular-resource": "1.5.11",
    "angular-sanitize": "1.5.11"
  }
}

作为旁注,您应该考虑按照Bower自己的建议将项目迁移到Yarn。您可以找到有关如何执行此操作的信息here