{"id":1545,"date":"2019-04-15T16:53:35","date_gmt":"2019-04-15T08:53:35","guid":{"rendered":"http:\/\/170.106.148.50\/?p=1545"},"modified":"2019-04-15T16:55:08","modified_gmt":"2019-04-15T08:55:08","slug":"%e5%88%a9%e7%94%a8-gulp-%e6%89%b9%e9%87%8f%e6%b7%b7%e6%b7%86%e5%89%8d%e7%ab%af%e4%bb%a3%e7%a0%81","status":"publish","type":"post","link":"https:\/\/www.195440.com\/1545","title":{"rendered":"gulp \u6279\u91cf\u6df7\u6dc6\u4ee3\u7801"},"content":{"rendered":"

package.json<\/h4>\n
\n
    \n
  1. {<\/li>\n
  2. \u00a0\u00a0“name”<\/span>:\u00a0“camera”<\/span>,<\/li>\n
  3. \u00a0\u00a0“version”<\/span>:\u00a0“1.0.0”<\/span>,<\/li>\n
  4. \u00a0\u00a0“description”<\/span>:\u00a0“2019\u5e744\u670815\u65e514:12:51”<\/span>,<\/li>\n
  5. \u00a0\u00a0“main”<\/span>:\u00a0“config.js”<\/span>,<\/li>\n
  6. \u00a0\u00a0“scripts”<\/span>:\u00a0{<\/li>\n
  7. \u00a0\u00a0\u00a0\u00a0“test”<\/span>:\u00a0“echo\u00a0\\”Error:\u00a0no\u00a0test\u00a0specified\\”\u00a0&&\u00a0exit\u00a01″<\/span>,<\/li>\n
  8. \u00a0\u00a0\u00a0\u00a0“build”<\/span>:\u00a0“gulp\u00a0copy\u00a0&&\u00a0gulp\u00a0min”<\/span><\/li>\n
  9. \u00a0\u00a0},<\/li>\n
  10. \u00a0\u00a0“devDependencies”<\/span>:\u00a0{<\/li>\n
  11. \u00a0\u00a0\u00a0\u00a0“babel-core”<\/span>:\u00a0“^6.22.1”<\/span>,<\/li>\n
  12. \u00a0\u00a0\u00a0\u00a0“babel-helper-vue-jsx-merge-props”<\/span>:\u00a0“^2.0.3”<\/span>,<\/li>\n
  13. \u00a0\u00a0\u00a0\u00a0“babel-loader”<\/span>:\u00a0“^7.1.1”<\/span>,<\/li>\n
  14. \u00a0\u00a0\u00a0\u00a0“babel-plugin-syntax-jsx”<\/span>:\u00a0“^6.18.0”<\/span>,<\/li>\n
  15. \u00a0\u00a0\u00a0\u00a0“babel-plugin-transform-runtime”<\/span>:\u00a0“^6.22.0”<\/span>,<\/li>\n
  16. \u00a0\u00a0\u00a0\u00a0“babel-plugin-transform-vue-jsx”<\/span>:\u00a0“^3.5.0”<\/span>,<\/li>\n
  17. \u00a0\u00a0\u00a0\u00a0“babel-polyfill”<\/span>:\u00a0“^6.26.0”<\/span>,<\/li>\n
  18. \u00a0\u00a0\u00a0\u00a0“babel-preset-env”<\/span>:\u00a0“^1.3.2”<\/span>,<\/li>\n
  19. \u00a0\u00a0\u00a0\u00a0“babel-preset-stage-2”<\/span>:\u00a0“^6.22.0”<\/span>,<\/li>\n
  20. \u00a0\u00a0\u00a0\u00a0“gulp”<\/span>:\u00a0“^3.9.1”<\/span>,<\/li>\n
  21. \u00a0\u00a0\u00a0\u00a0“gulp-babel”<\/span>:\u00a0“^6.0.0”<\/span>,<\/li>\n
  22. \u00a0\u00a0\u00a0\u00a0“gulp-htmlmin”<\/span>:\u00a0“^5.0.1”<\/span>,<\/li>\n
  23. \u00a0\u00a0\u00a0\u00a0“gulp-javascript-obfuscator”<\/span>:\u00a0“^1.1.5”<\/span>,<\/li>\n
  24. \u00a0\u00a0\u00a0\u00a0“gulp-sftp”<\/span>:\u00a0“^0.1.5”<\/span>,<\/li>\n
  25. \u00a0\u00a0\u00a0\u00a0“gulp-uglify”<\/span>:\u00a0“^3.0.2”<\/span>,<\/li>\n
  26. \u00a0\u00a0\u00a0\u00a0“gulp-util”<\/span>:\u00a0“^3.0.8”<\/span>,<\/li>\n
  27. \u00a0\u00a0\u00a0\u00a0“javascript-obfuscator”<\/span>:\u00a0“^0.18.1”<\/span>,<\/li>\n
  28. \u00a0\u00a0\u00a0\u00a0“minify”<\/span>:\u00a0“^4.1.1”<\/span><\/li>\n
  29. \u00a0\u00a0},<\/li>\n
  30. \u00a0\u00a0“author”<\/span>:\u00a0“”<\/span>,<\/li>\n
  31. \u00a0\u00a0“license”<\/span>:\u00a0“ISC”<\/span><\/li>\n
  32. }<\/li>\n<\/ol>\n<\/div>\n

    gulpfile.js<\/h4>\n
    \n
      \n
    1. const<\/span>\u00a0gulp\u00a0=\u00a0require(‘gulp’)<\/li>\n
    2. const<\/span>\u00a0path\u00a0=\u00a0require(‘path’)<\/li>\n
    3. const<\/span>\u00a0uglify\u00a0=\u00a0require(‘gulp-uglify’)<\/li>\n
    4. const<\/span>\u00a0babel\u00a0=\u00a0require(‘gulp-babel’);<\/li>\n
    5. const<\/span>\u00a0htmlmin\u00a0=\u00a0require(‘gulp-htmlmin’);<\/li>\n
    6. const<\/span>\u00a0javascriptObfuscator\u00a0=\u00a0require(‘gulp-javascript-obfuscator’);<\/li>\n
    7. <\/li>\n
    8. \/**<\/span><\/li>\n
    9. \u00a0*\u00a0\u62f7\u8d1d<\/span><\/li>\n
    10. \u00a0*\/<\/span><\/li>\n
    11. gulp.task(‘assetsCopy’,\u00a0function<\/span>\u00a0()\u00a0{<\/li>\n
    12. \u00a0\u00a0return<\/span>\u00a0gulp.src(‘.\/assets\/**’)<\/span><\/li>\n
    13. \u00a0\u00a0\u00a0\u00a0.pipe(gulp.dest(‘.\/dist\/assets’))<\/span><\/li>\n
    14. });<\/span><\/li>\n
    15. <\/li>\n
    16. gulp.task(‘pageCopy’,\u00a0function\u00a0()\u00a0{<\/span><\/li>\n
    17. \u00a0\u00a0return\u00a0gulp.src(‘.\/page\/**’)<\/span><\/li>\n
    18. \u00a0\u00a0\u00a0\u00a0.pipe(gulp.dest(‘.\/dist\/page’))<\/span><\/li>\n
    19. });<\/span><\/li>\n
    20. <\/li>\n
    21. gulp.task(‘pageJsCopy’,\u00a0function\u00a0()\u00a0{<\/span><\/li>\n
    22. \u00a0\u00a0return\u00a0gulp.src(‘.\/pageJs\/**’)<\/span><\/li>\n
    23. \u00a0\u00a0\u00a0\u00a0.pipe(gulp.dest(‘.\/dist\/pageJs’))<\/span><\/li>\n
    24. });<\/span><\/li>\n
    25. <\/li>\n
    26. gulp.task(‘fileCopy’,\u00a0function\u00a0()\u00a0{<\/span><\/li>\n
    27. \u00a0\u00a0return\u00a0gulp.src(‘.\/file\/**’)<\/span><\/li>\n
    28. \u00a0\u00a0\u00a0\u00a0.pipe(gulp.dest(‘.\/dist\/file’))<\/span><\/li>\n
    29. });<\/span><\/li>\n
    30. <\/li>\n
    31. gulp.task(‘htmlCopy’,\u00a0function\u00a0()\u00a0{<\/span><\/li>\n
    32. \u00a0\u00a0return\u00a0gulp.src(‘.\/*.html’)<\/span><\/li>\n
    33. \u00a0\u00a0\u00a0\u00a0.pipe(gulp.dest(‘.\/dist’))<\/span><\/li>\n
    34. });<\/span><\/li>\n
    35. <\/li>\n
    36. \/**<\/span><\/li>\n
    37. \u00a0*\u00a0\u5171\u901ajs<\/span><\/li>\n
    38. \u00a0*\/<\/span><\/li>\n
    39. gulp.task(‘commonJs’,\u00a0function<\/span>\u00a0()\u00a0{<\/li>\n
    40. \u00a0\u00a0\/\/\/\/\/\u627e\u5230\u9700\u8981\u538b\u7f29\u7684\u6587\u4ef6<\/span><\/li>\n
    41. \u00a0\u00a0gulp.src([‘assets\/js\/common.js’,\u00a0‘assets\/js\/index.js’,\u00a0‘assets\/js\/display.js’,\u00a0‘assets\/js\/login.js’,\u00a0‘assets\/js\/upload.js’])\u00a0\/\/\/\/\u00a0\u00a0\/**\/\u00a0\u00a0\u8868\u793ajs\u76ee\u5f55\u4e0b\u7684\u4efb\u610f\u5c42\u7ea7\u7684\u76ee\u5f55<\/span><\/li>\n
    42. \u00a0\u00a0\u00a0\u00a0.pipe(babel())<\/li>\n
    43. \u00a0\u00a0\u00a0\u00a0\/\/\/\/\/\u538b\u7f29\u6587\u4ef6<\/span><\/li>\n
    44. \u00a0\u00a0\u00a0\u00a0.pipe(uglify())<\/li>\n
    45. \u00a0\u00a0\u00a0\u00a0\/\/\u00a0\u6df7\u6dc6<\/span><\/li>\n
    46. \u00a0\u00a0\u00a0\u00a0.pipe(javascriptObfuscator({<\/li>\n
    47. \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0stringArrayEncoding:\u00a0true<\/span><\/li>\n
    48. \u00a0\u00a0\u00a0\u00a0}))<\/li>\n
    49. \u00a0\u00a0\u00a0\u00a0\/\/\/\/\/\u53e6\u5b58\u538b\u7f29\u540e\u6587\u4ef6<\/span><\/li>\n
    50. \u00a0\u00a0\u00a0\u00a0.pipe(gulp.dest(‘dist\/assets\/js’));<\/li>\n
    51. });<\/li>\n
    52. <\/li>\n
    53. \/**<\/span><\/li>\n
    54. \u00a0*\u00a0\u5185\u5d4c\u9875\u9762js<\/span><\/li>\n
    55. \u00a0*\/<\/span><\/li>\n
    56. gulp.task(‘pageJs’,\u00a0function<\/span>\u00a0()\u00a0{<\/li>\n
    57. \u00a0\u00a0\/\/\/\/\/\u627e\u5230\u9700\u8981\u538b\u7f29\u7684\u6587\u4ef6<\/span><\/li>\n
    58. \u00a0\u00a0gulp.src(‘pageJs\/*.js’)\u00a0\/\/\/\/\u00a0\u00a0\/**\/<\/span>\u00a0\u00a0\u8868\u793ajs\u76ee\u5f55\u4e0b\u7684\u4efb\u610f\u5c42\u7ea7\u7684\u76ee\u5f55<\/li>\n
    59. \u00a0\u00a0\u00a0\u00a0.pipe(babel())<\/li>\n
    60. \u00a0\u00a0\u00a0\u00a0\/\/\/\/\/\u538b\u7f29\u6587\u4ef6<\/span><\/li>\n
    61. \u00a0\u00a0\u00a0\u00a0.pipe(uglify())<\/li>\n
    62. \u00a0\u00a0\u00a0\u00a0\/\/\u00a0\u6df7\u6dc6<\/span><\/li>\n
    63. \u00a0\u00a0\u00a0\u00a0.pipe(javascriptObfuscator())<\/li>\n
    64. \u00a0\u00a0\u00a0\u00a0\/\/\/\/\/\u53e6\u5b58\u538b\u7f29\u540e\u6587\u4ef6<\/span><\/li>\n
    65. \u00a0\u00a0\u00a0\u00a0.pipe(gulp.dest(‘dist\/pageJs’));<\/li>\n
    66. });<\/li>\n
    67. <\/li>\n
    68. \/**<\/span><\/li>\n
    69. \u00a0*\u00a0\u9875\u9762html<\/span><\/li>\n
    70. \u00a0*\/<\/span><\/li>\n
    71. gulp.task(‘pageHtml’,\u00a0function<\/span>\u00a0()\u00a0{<\/li>\n
    72. \u00a0\u00a0const<\/span>\u00a0options\u00a0=\u00a0{<\/li>\n
    73. \u00a0\u00a0\u00a0\u00a0removeComments:\u00a0true<\/span>,\u00a0\/\/\u6e05\u9664HTML\u6ce8\u91ca<\/span><\/li>\n
    74. \u00a0\u00a0\u00a0\u00a0collapseWhitespace:\u00a0true<\/span>,\u00a0\/\/\u538b\u7f29HTML<\/span><\/li>\n
    75. \u00a0\u00a0\u00a0\u00a0collapseBooleanAttributes:\u00a0false<\/span>,\u00a0\/\/\u7701\u7565\u5e03\u5c14\u5c5e\u6027\u7684\u503c\u00a0<input\u00a0checked=”true”\/>\u00a0==>\u00a0<input\u00a0\/><\/span><\/li>\n
    76. \u00a0\u00a0\u00a0\u00a0removeEmptyAttributes:\u00a0false<\/span>,\u00a0\/\/\u5220\u9664\u6240\u6709\u7a7a\u683c\u4f5c\u5c5e\u6027\u503c\u00a0<input\u00a0id=””\u00a0\/>\u00a0==>\u00a0<input\u00a0\/><\/span><\/li>\n
    77. \u00a0\u00a0\u00a0\u00a0removeScriptTypeAttributes:\u00a0true<\/span>,\u00a0\/\/\u5220\u9664<script>\u7684type=”text\/javascript”<\/span><\/li>\n
    78. \u00a0\u00a0\u00a0\u00a0removeStyleLinkTypeAttributes:\u00a0true<\/span>,\u00a0\/\/\u5220\u9664<style>\u548c<link>\u7684type=”text\/css”<\/span><\/li>\n
    79. \u00a0\u00a0\u00a0\u00a0minifyJS:\u00a0true<\/span>,\u00a0\/\/\u538b\u7f29\u9875\u9762JS<\/span><\/li>\n
    80. \u00a0\u00a0\u00a0\u00a0minifyCSS:\u00a0true<\/span>\u00a0\/\/\u538b\u7f29\u9875\u9762CSS<\/span><\/li>\n
    81. \u00a0\u00a0};<\/li>\n
    82. \u00a0\u00a0gulp.src(‘page\/*.html’)<\/span><\/li>\n
    83. \u00a0\u00a0\u00a0\u00a0.pipe(htmlmin(options))<\/span><\/li>\n
    84. \u00a0\u00a0\u00a0\u00a0.pipe(gulp.dest(‘dist\/page’));<\/span><\/li>\n
    85. });<\/span><\/li>\n
    86. <\/li>\n
    87. \/**<\/span><\/li>\n
    88. \u00a0*\u00a0\u914d\u7f6e\u6587\u4ef6<\/span><\/li>\n
    89. \u00a0*\/<\/span><\/li>\n
    90. gulp.task(‘configJs’,\u00a0function<\/span>\u00a0()\u00a0{<\/li>\n
    91. \u00a0\u00a0\/\/\/\/\/\u627e\u5230\u9700\u8981\u538b\u7f29\u7684\u6587\u4ef6<\/span><\/li>\n
    92. \u00a0\u00a0gulp.src(‘.\/config.js’)\u00a0\/\/\/\/\u00a0\u00a0\/**\/\u00a0\u00a0\u8868\u793ajs\u76ee\u5f55\u4e0b\u7684\u4efb\u610f\u5c42\u7ea7\u7684\u76ee\u5f55<\/span><\/li>\n
    93. \u00a0\u00a0\u00a0\u00a0.pipe(babel())<\/li>\n
    94. \u00a0\u00a0\u00a0\u00a0\/\/\/\/\/\u538b\u7f29\u6587\u4ef6<\/span><\/li>\n
    95. \u00a0\u00a0\u00a0\u00a0.pipe(uglify())<\/li>\n
    96. \u00a0\u00a0\u00a0\u00a0\/\/\u00a0\u6df7\u6dc6<\/span><\/li>\n
    97. \u00a0\u00a0\u00a0\u00a0.pipe(javascriptObfuscator({<\/li>\n
    98. \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0stringArrayEncoding:\u00a0true<\/span><\/li>\n
    99. \u00a0\u00a0\u00a0\u00a0}))<\/li>\n
    100. \u00a0\u00a0\u00a0\u00a0\/\/\/\/\/\u53e6\u5b58\u538b\u7f29\u540e\u6587\u4ef6<\/span><\/li>\n
    101. \u00a0\u00a0\u00a0\u00a0.pipe(gulp.dest(‘dist’));<\/li>\n
    102. });<\/li>\n
    103. <\/li>\n
    104. \/\/\u00a0\u6267\u884c\u4efb\u52a1<\/span><\/li>\n
    105. gulp.task(‘copy’,\u00a0[‘assetsCopy’,\u00a0‘pageCopy’,\u00a0‘pageJsCopy’,\u00a0‘fileCopy’,\u00a0‘htmlCopy’])<\/li>\n
    106. gulp.task(‘min’,\u00a0[‘commonJs’,\u00a0‘pageJs’,\u00a0‘pageHtml’,\u00a0‘configJs’])<\/li>\n<\/ol>\n<\/div>\n

      \u5b89\u88c5\u4f9d\u8d56<\/h4>\n

      npm install<\/span><\/p>\n

      \u6267\u884c\u547d\u4ee4<\/h4>\n

      npm run build<\/span><\/p>\n

      \"\"<\/p>\n","protected":false},"excerpt":{"rendered":"

      package.json { \u00a0\u00a0“name”:\u00a0“camera”, \u00a0\u00a0“version”:\u00a0“1.0.0”, \u00a0\u00a0“description”:\u00a0“2019\u5e744\u670815\u65e514:12:51”, \u00a0\u00a0“main”:\u00a0“config.js”, \u00a0\u00a0“scripts”:\u00a0{ \u00a0\u00a0\u00a0\u00a0“test”:\u00a0“echo\u00a0\\”Error:\u00a0no\u00a0test …<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[16],"tags":[],"_links":{"self":[{"href":"https:\/\/www.195440.com\/wp-json\/wp\/v2\/posts\/1545"}],"collection":[{"href":"https:\/\/www.195440.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.195440.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.195440.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.195440.com\/wp-json\/wp\/v2\/comments?post=1545"}],"version-history":[{"count":6,"href":"https:\/\/www.195440.com\/wp-json\/wp\/v2\/posts\/1545\/revisions"}],"predecessor-version":[{"id":1552,"href":"https:\/\/www.195440.com\/wp-json\/wp\/v2\/posts\/1545\/revisions\/1552"}],"wp:attachment":[{"href":"https:\/\/www.195440.com\/wp-json\/wp\/v2\/media?parent=1545"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.195440.com\/wp-json\/wp\/v2\/categories?post=1545"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.195440.com\/wp-json\/wp\/v2\/tags?post=1545"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}