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

ric*_*ard 6 angularjs bower bower-install

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

我从来没有真正看过我添加它的部分的名称,但最近我跑了bower install <somepackage> -S,它创建了一个名为的新部分dependencies.噢噢噢!他们应该去那里.

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

所以现在我有很多"生产"包devdependencies.在dependencies不破坏任何东西的情况下移动它们的最佳方法是什么?

Bob*_*ols 0

bower_components无论您是否将Bower 中的依赖项标记为开发依赖项,bower 中的依赖项都会安装到您的文件夹中。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"
  }
}
Run Code Online (Sandbox Code Playgroud)

会成为

{
  ...
  "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"
  }
}
Run Code Online (Sandbox Code Playgroud)

附带说明一下,您应该考虑按照 Bower 自己的建议将项目迁移到Yarn 。您可以在此处找到有关如何执行此操作的信息。