我一看到这些玩意就不想写代码了怎么破

2017-04-15 21:08:08 +08:00
 sensui7

写代码之前, 先搞出一堆依赖, 不是说和业务相关的, 就是开发时 , 所谓提高工作效率, 倒不是说不好, 问题是这些依赖今天好使, 下周 api 可能就变了, 3 个月后就 deprecated 了, 看到这 60 多个包, 什么灵感都没了.....我只想关掉编辑器.

我想问一下, 后端或者 app 或者桌面软件开发, 也这样吗, 我只了解一些 php, 我感觉那时候也没这些劳什子, 我用框架, CI, laravel, 我写的代码, 都跟我业务需求有关呐... ...

小生真诚请教后端, app, 桌面领域的人士现身说法...

"devDependencies": {
    "autoprefixer": "^6.7.2",
    "babel-core": "^6.22.1",
    "babel-eslint": "^7.1.1",
    "babel-loader": "^6.2.10",
    "babel-plugin-transform-runtime": "^6.22.0",
    "babel-preset-env": "^1.2.1",
    "babel-preset-stage-2": "^6.22.0",
    "babel-register": "^6.22.0",
    "chalk": "^1.1.3",
    "connect-history-api-fallback": "^1.3.0",
    "copy-webpack-plugin": "^4.0.1",
    "css-loader": "^0.26.1",
    "eslint": "^3.14.1",
    "eslint-friendly-formatter": "^2.0.7",
    "eslint-loader": "^1.6.1",
    "eslint-plugin-html": "^2.0.0",
    "eslint-config-standard": "^6.2.1",
    "eslint-plugin-promise": "^3.4.0",
    "eslint-plugin-standard": "^2.0.1",
    "eventsource-polyfill": "^0.9.6",
    "express": "^4.14.1",
    "extract-text-webpack-plugin": "^2.0.0",
    "file-loader": "^0.10.0",
    "friendly-errors-webpack-plugin": "^1.1.3",
    "html-webpack-plugin": "^2.28.0",
    "http-proxy-middleware": "^0.17.3",
    "webpack-bundle-analyzer": "^2.2.1",
    "cross-env": "^3.1.4",
    "karma": "^1.4.1",
    "karma-coverage": "^1.1.1",
    "karma-mocha": "^1.3.0",
    "karma-phantomjs-launcher": "^1.0.2",
    "karma-phantomjs-shim": "^1.4.0",
    "karma-sinon-chai": "^1.2.4",
    "karma-sourcemap-loader": "^0.3.7",
    "karma-spec-reporter": "0.0.26",
    "karma-webpack": "^2.0.2",
    "lolex": "^1.5.2",
    "mocha": "^3.2.0",
    "chai": "^3.5.0",
    "sinon": "^2.1.0",
    "sinon-chai": "^2.8.0",
    "inject-loader": "^2.0.1",
    "babel-plugin-istanbul": "^3.1.2",
    "phantomjs-prebuilt": "^2.1.14",
    "chromedriver": "^2.27.2",
    "cross-spawn": "^5.0.1",
    "nightwatch": "^0.9.12",
    "selenium-server": "^3.0.1",
    "semver": "^5.3.0",
    "shelljs": "^0.7.6",
    "opn": "^4.0.2",
    "optimize-css-assets-webpack-plugin": "^1.3.0",
    "ora": "^1.1.0",
    "rimraf": "^2.6.0",
    "url-loader": "^0.5.8",
    "vue-loader": "^11.1.4",
    "vue-style-loader": "^2.0.0",
    "vue-template-compiler": "^2.2.4",
    "webpack": "^2.2.1",
    "webpack-dev-middleware": "^1.10.0",
    "webpack-hot-middleware": "^2.16.1",
    "webpack-merge": "^2.6.1"
  },
5777 次点击
所在节点    问与答
49 条回复
shyling
2017-04-19 10:31:39 +08:00
@plantain 有点问题, react 是应该放在 deps 里的, dev 说的是开发使用, react 都打包到 bundle 里了
plantain
2017-04-19 11:02:50 +08:00
@shyling 分情况的,如果是 react 程序,实际运行的是 bundle ,在生产环境只需要那个 bundle ,不需要安装 react 包,那么运行 npm i --production 时就不应该安装 react ,所以不应该放到 deps 里;。
shyling
2017-04-19 12:40:52 +08:00
@plantain 其实我不知道你这么说你纯前端 spa 项目 npm i --production 能做什么事情。。。什么都不装了么
shyling
2017-04-19 12:53:59 +08:00
@plantain 哦,我又想了一想,其实不管是 deps 还是 devDeps 都是 npm 自己管理运行的,浏览器里的代码又不是通过 npm start / run 什么的执行的,所以说这里还是主要用于区分包的用途。
plantain
2017-04-19 12:58:25 +08:00
@shyling 很多项目的前端和 nodejs 是混在一起的,共用一个 package.json ,这种情况下 react 不放在 deps 下更合理;纯前端的话确实放在哪里都没太大影响。
sensui7
2017-04-19 14:36:52 +08:00
@Balthild 学到了, 原来不管 package , 直接撸. 稳.

@plantain
@shyling
你俩说的是其实是一个意思, 应用依赖于 react 运行, 所以放在 deps 里, 但是开发时 react 已经被打包到 bundle 里了. 所以生产环境不需要 react... 需要吗? 不需要吗?
一般的做法是 dev 里只放跟开发过程相关的包, 像 react 这类也放到 deps 里吧.

但前后端混在一起的话, 用 webpack 就比较麻烦
Balthild
2017-04-21 20:23:17 +08:00
@sensui7 要看 package 也是在某段代码中遇到某个语句时,去看它所调用的具体的那个 package ,怎么都轮不上看 package.json 里面的 package 列表吧?如果你想先了解代码中调用的包,文件头部难道没有 import xxx from "xxx"; ?
sensui7
2017-04-22 18:56:41 +08:00
@Balthild 其实就像把属性名前边放一个 _, 表示这是私有属性一样, 只是一种约定吧.包管理器, 除了自动管理依赖, 也是方便查看项目依赖的工具, 不是吗?
如果某个项目明明有 package.json, 结果是乱来的, 根本体现不出依赖, 完全还是手动复制粘贴的包, 那我觉得作者一定脑子有包.....
Balthild
2017-08-03 14:49:59 +08:00
@sensui7 package.json 表示的项目依赖,不一定是项目代码的依赖,也包括构建工具与构建工具的依赖。
要看项目代码的依赖,只有文件头部的引用语句是准确的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/355128

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX