收藏
回答

npm构建会把devDependencies的包也构建

问题模块 框架类型 问题类型 操作系统 工具版本
开发者工具 小程序 Bug macOS 1.02.1808300
"dependencies": {
  "lodash.pick": "^4.4.0"
},
"devDependencies": {
  "eslint": "^5.5.0",
  "eslint-config-cantonjs": "^2.0.0",
  "eslint-config-standard": "^12.0.0",
  "eslint-plugin-import": "^2.14.0",
  "eslint-plugin-node": "^7.0.1",
  "eslint-plugin-promise": "^4.0.0",
  "eslint-plugin-standard": "^4.0.0",
  "prettier-eslint-cli": "^4.7.1"
}

package.json中dependencies和devDependencies如上,使用开发者工具的时候会把devDependencies也进行构建,devDependencies不应该被构建

最后一次编辑于  2018-09-04
回答关注问题邀请回答
收藏

3 个回答

  • 小程序技术专员-june
    小程序技术专员-june
    2018-09-11

    工具的 npm 构建会将小程序根目录下的 node_modules 里的包进行构建,不会去区分是如何安装的。如果有其他dev相关包要用的话,建议将其移至小程序根目录之外。


    或者使用 project.config.json 的 miniprogramRoot 字段指定小程序的根目录。

    2018-09-11
    赞同
    回复 6
    • Jacee Chan
      Jacee Chan
      2018-09-13

      文档上不是说

      "测试、构建相关的依赖请放入 devDependencies 字段中避免被一起打包到小程序包中。"么?这句话意思不是放入devDependencies就不会被打包?


      2018-09-13
      回复
    • 小程序技术专员-june
      小程序技术专员-june
      2018-09-13回复Jacee Chan

      文档中这句话是针对发布的 npm 包:


      如果你是作为包的使用者的话,请使用

      npm install --production

      安装 npm 包,这样就不会安装所使用的包 devDependencies  中列举的依赖。

      2018-09-13
      回复
    • Jacee Chan
      Jacee Chan
      2018-09-27

      那个这个npm可以说基本没什么用了....

      2018-09-27
      回复
    • 小程序技术专员-june
      小程序技术专员-june
      2018-09-27回复Jacee Chan

      一开始的设计是针对业务 npm 包(包括自定义组件或 js模块)来使用的。所以并不考虑开发辅助的那些包。

      2018-09-27
      回复
    • 小程序技术专员-june
      小程序技术专员-june
      2018-09-27回复Jacee Chan

      如果你只是想加一些构建、测试相关的包,那么可以用我一开始提到的方式。后续会想办法支持区分依赖树中的 deps 和 devDeps,但是目前是将 node_modules 中的所有包都进行构建的。

      2018-09-27
      回复
    查看更多(1)
  • Six006
    Six006
    2018-09-10

    我这边devDependencies也构建了

    2018-09-10
    赞同
    回复
  • Chaunjie
    Chaunjie
    2018-09-04

    只有dependencies会被构建吧,我这边试了devDependencies不会被构建

    2018-09-04
    赞同
    回复