-先说卸载: wabpack@4对应的每个插件的版本号都在最后 
  1. 1 全局安装的话,npm uninstall webpack -g 有时候并不能卸载干净,
  2. 2 webpack -v 可判断是否安装成功,全局安装的可以用这个判断,局部安装的不能
  3. 3 卸载不干净导致后面安装其他的都webpack -v识别不了
  4. 4   uninstall,出错的话,
  5. 5   全局的找到安装的node目录,下的node_global 下的webpack相关的全删除 node_global\node_modules 下的 webpack相关的全删除
  6. 6    项目里安装的,把此项目里的node_modules直接删除,package.json,package-lock.json删除
  7. 7   后续安装时,warn找不到package.json,照步骤安装,npm init -y会弄出来package.json,不用担心,
  8. 8   没安装webpack之前不用npm init ,package会出现好多乱七八糟的东西

先说卸载

  1. 1 -如果想复制上个项目的环境,可以除node_modules外,全粘贴过去,
  2. 2 然后在cmd里跳到此目录下,
  3. 3 cnpm i,即可按照package.json里的各版本号自动下载好,
  4. 4  注意:后续接着用cnpm下载,不要用npm下载,我下载就显示checkPermission no access to...
  5. 5     或者 开始时就用npm i,我猜测是这个问题

报错:

  1. 1 报错:npm下载东西时, 显示checkPermission no access to...,
  2. 2 把项目的node_modules删除,
  3. 3 然后cnpm i,如果还报这个错误
  4. 4  考虑下是不是一会儿用cnpm和一会儿用npm的原因
  5. 5

先全局安装,再在项目里安装:

  1. -gglobal 全局,-D --save-dev 的简写
  2. 各个版本号都在最后
  3.    // 1.全局安装:
  4. npm i webpack@4.20.2 -g
  5. npm i webpack-cli -g
  6. //安装指定版本好,最新的总是有不可预估的错误
  7. // 2. 项目安装:npm i webpack@4.20.2 --save-dev
  8. npm i webpack-cli --save-dev
  9. // 3. 初始化:npm init -y //会生成package.json
  10. // 4. 安装jQuery:npm i jquery --save
  11.       项目目录:
  12.     webpack-study目录下:\dist\bundle.js,
  13.        \src\css ,\src\js,\src\image
  14.        \src\main.js ,\src\index.html
  15.        \webpack-config-js //最开始不用,安装好webpack之后,webpack -v显示版本号之后,再建此文件
  16.     index.html中引入 script标签:<script src="../dist/bundle.js"> </script>
  17.     测试安装成功否:webpack -v
  18.       
  19. // 5. 测试打包命令:webpack main.js --output-filename bundle.js --output-pat --mode development //百度的,有错
  20. // 我也不懂 webpack .\src\main.js .\dist\bundle.js 也出错,
  21.     //走下面第6步,直接webpack命令就可以打包,所有此步不管了
  22.  
  23.     // 6.配置webpack.config.js文件的出入口
  24. // const path=require('path')
  25. // module.exports={
  26. // mode: 'development', //webpack 4版本必备,3不用
  27. // //需要手动指定 入口 和 出口
  28. // entry: path.join(__dirname,'./src/main.js'), //表示要使用 webpack 打包哪个文件,
  29. // output:{
  30. // path: path.join(__dirname,'./dist'), //指定打包好的文件,输出到哪个目录中去
  31. // filename:'bundle.js'
  32. // } ,
  33. // }
  34. // 7. webpack 命令:直接打包
  35.  
  36. // 8. 配置webpack-dev-server (优点:可以不用输入webpack命令,在npm run dev 后,每次修改保存会自动打包):
  37. // - 导入:npm i webpack-dev-server --save-dev
  38. // - 配置package.json文件里,
  39.        //scripts下新增“dev":"webpack-dev-server --open Chrome --contentBase src"
  40.        // 还可以指定端口号 :--port 端口号 热更新 --hot
  41.         // 以后运行便可以 npm run dev来代替webpack命令来打包
  42. // - 改index.html 里引入的bundle.js文件路径
  43.        使用webpack命令时index.html引入的: <!-- <script src="../dist/bundle.js"> </script> -->
  44.        使用webpack-dev-server工具后:<!-- <script src="/bundle.js"></script> -->
  45.        而使用html-webpack-plugin插件后,注释掉此标签
  46.  
  47. // 9.使用html-webpack-plugin插件配置启动页面
  48. // - 运行npm i html-webpack-plugin --save-dev安装到开发依赖
  49. // - 修改webpack.config.js配置文件如下:
  50. // - 添加如下:
  51. // var htmlWebpackPlugin = require('html-webpack-plugin');
  52. // plugins:[ // 添加plugins节点配置插件
  53. // new htmlWebpackPlugin({
  54. // template:path.resolve(__dirname, 'src/index.html'),//模板路径
  55. // filename:'index.html'//自动生成的HTML文件的名称
  56. // }),
  57. // ],
  58. // - 运行 npm run dev
  59. // 浏览器渲染的index.html页面里,多生成了一个<script type="text/javascript" src="index.js"></script>标签
  60. // 将index.html中script标签注释掉,因为html-webpack-plugin插件会自动把index.js注入到index.html页面中
  1. 1 // 10.打包css\less\scss
  2. 2 // 打包css
  3. 3 // 1.运行npm i style-loader css-loader --save-dev
  4. 4 // 2.修改webpack.config.js这个配置文件,如下所示module 里的 rules 里
  5. 5 // 打包less
  6. 6 // 需要npm i less -D安装less,是less-loader 内部依赖
  7. 7 // 1.运行cnpm i less-loader less -D
  8. 8 // 2.修改webpack.config.js这个配置文件:
  9. 9 // 打包scss - 出错了,最终发现版本号的原因,改为@7.0.3,默认装8.0.0 //2019年9月4号
  10. 10 // 1.需要npm i node-sass -D安装node-sass
  11. 11 // 2.运行cnpm i sass-loader@7.0.3 sass --save-dev
  12. 12     //    3.在webpack.config.js中添加处理sass文件的loader模块:
  13. 13 出错:install sass之后,.scss文件没有被识别,报错,查看sass-loader版本为8.0.0,卸载后重装了7.0.3可以运行,中途还遇less-loader报错,
  14. 14 之前好的,直接再安装一次
  15. 15 // 在webpack.config.js中添加如下内容:
  16. 16
  17. 17 // module:{
  18. 18 // rules:[
  19. 19 // {test:/\.css$/,use:['style-loader','css-loader']}, //顺序不可乱,从右到左依次
  20. 20 // {test:/\.less$/,use:['style-loader','css-loader','less-loader']},
  21. 21 // {test:/\.scss$/,use:['style-loader','css-loader','sass-loader']},
  22. 22 // ]
  23. 23 // }
  24. 24 // use表示使用哪些模块来处理test所匹配到的文件;use中相关loader模块的调用顺序是从后向前调用的
  25. 25 // 然后我们在css目录中,添加3个样式文件
  26. 26 // index.css
  27. 27 // li{
  28. 28 // list-style: none;
  29. 29 // }
  30. 30
  31. 31 // index.less
  32. 32 // ul{
  33. 33 // padding: 0;
  34. 34 // margin: 0;
  35. 35 // }
  36. 36
  37. 37 // index.scss
  38. 38 // html,body{
  39. 39 // margin: 0;
  40. 40 // padding: 0;
  41. 41 // li{
  42. 42 // font-size: 12px;
  43. 43 // line-height: 30px;
  44. 44 // }
  45. 45 // }
  46. 46
  1. 1  // 11.处理图片
  2. 2 /* cnpm i url-loader file-loader -D
  3. 3 index.html里引入图片路径
  4. 4 配置webpack.config.js里的匹配规则 :
  5. 5 {test:/\.(jpg|png|gif|bmp|jpeg)$/,use:['url-loader?limit=15205&name=[hash:8]-[name].[ext]']} ,
  6. 6 use里的值如下:
  7. 7 1. 'url-loader' 查看网页源码后发现,图片编码为base 64 , ---审查源码发现为乱七八糟.jpg
  8. 8
  9. 9 2. 'url-loader?limit=15206-1' 图片属性检查后大小为15206,参数再小一点时, ---显示为数字.jpg
  10. 10 limit给定的值是图片大小,单位byte,如果引用的图片>=limit,则不会被转为base 64格式的字符串,<limit则会
  11. 11
  12. 12 3. 'url-loader?limit=15205&name=[name].[ext]'
  13. 13 ---审查源码发现为:夷陵老祖.jpg
  14. 14
  15. 15 新增一个images2文件夹,放一个同名图片,css文件里引用后,发现都引用了第二张,然后修改如下,name前新加hash
  16. 16 4. 'url-loader?limit=15205&name=[hash:8]-[name].[ext]'
  17. 17 ---审查源码发现为: 209ceef3-夷陵老祖.jpg 27e76ab8-夷陵老祖.jpg,实现对两个同名不同文件夹下的文件引用
  18. 18 */
  1. 1 // 12. 处理字体文件的loader --打包失败 --已解决
  2. 2 /* webpack.config.js:{test:/\.{ttf|eot|svg|woff|woff2}$/,use:['url-loader']},
  3. 3 body中引入 --bootstrap官网的图标
  4. 4 <span class="glyphicon glyphicon-heart "aria-hidden="true"></span>
  5. 5 安装bootstrap,cnpm i bootstrap@3.7.0 -s ,
  6. 6 1.页面引入 <link rel="stylesheet" href="../node_modules/bootstrap/dist/css/bootstrap.css">
  7. 7 npm run dev 测试 --打包成功
  8. 8 2.注释掉上面 在main.js里import 'bootstrap/dist/css/bootstrap.css',
  9. 9 配置module里 对后缀为.{ttf|eot|svg|woff|woff2}$ 的loader加载,结果出错,解决不了,
  10. 10 最新bootstrap也没 图标了,所有不管了
  11. 11 3.卸载掉bootstrap 3 安装bootstrap@4
  12. 12 额外导入一个bootstrap4版本的图标库 npm i -d open-iconic
  13. 13 //注意:必须是 -d ,-D出错,原因不知
  14. 14 // 导入 Bootstrap 样式:
  15. 15 import '../node_modules/bootstrap/dist/css/bootstrap.css'
  16. 16 import 'open-iconic/font/css/open-iconic-bootstrap.css'
  17. 17 4.配置webpack.config.js:
  18. 18 {test: /\.(ttf|eot|svg|woff|woff2|otf)$/, use: 'url-loader'},//处理字体文件的loader处理
  19. 19 // 注意:多了一个.otf的后缀
  20. 20 */
  1. 1 // 13.配置babel 来转换高级的es语法
  2. 2 /*webpack.config.js: {test:/\.js$/,use:'babel-loader',exclude:/node_modules/ }
  3. 3 通过 Babel ,可以将高级的语法转换为低级的
  4. 4 1.在webpack中可以 运行如下两套 命令,安装两套包,去安装 babel 相关的loader功能
  5. 5 1.1第一套包:cnpm i babel-core babel-loader@7.1.4 babel-plugin-tansform-runtime -D
  6. 6 1.2第二套包:cnpm i babel-preset-env1 babel-preset-stage-0 -D
  7. 7 2.打开 webpack 的配置文件,在mudole节点下的 rules中添加一个新的匹配规则
  8. 8 2.1 {test:/\.js$/,use:'babel-loader',exclude:/node_modules/}
  9. 9 2.2 注意:在配置babel的loader规则的时候,必须把node_modules目录,通过exclude选项排除掉,
  10. 10 原因一:babel会把node_modules中所有的第三方js文件都打包编译,这样非常消耗cpu
  11. 11 原因二:项目会无法正常运行
  12. 12 3.在项目的根目录中有一个叫做.babelrc的Babel配置文件,这个配置文件属于json格式,所以在写.babelrc配置的时候
  13. 13 必须符合json规范:不能写注释,字符串必须双引号
  14. 14 3.1 在.bablerc中,写如下的配置: preset(语法)
  15. 15 {
  16. 16 "preset":["env","stage-0"],
  17. 17 "plugins":["transform-runtime"]
  18. 18 }
  19. 19 4.了解 目前我们安装的babel-preset-env ,是比较新的ES语法,之前安装的babel-preset-es2015 ,
  20. 20 现在出了一个更新的语法插件,- babel-preset-env它包含了所有的和es***相关的语法
  21. 2
  1. 1 // 14.如何在webpack构建的项目中进行vue开发
  2. 2 /* 在普通网页中使用vue
  3. 3 1.使用script引入vue的包
  4. 4 2.在index页面中创建一个id为app的容器
  5. 5 3.new Vue 得到一个vm实例
  6. 6 在webpack 中尝试使用vue
  7. 7 cnpm i vue@2.6.0 -D //版本号需与下面的打包loader一致
  8. 8 1.导包 在main.js文件里
  9. 9 第一种:
  10. 10 import Vue from 'vue'
  11. 11 还需在webpack配置文件中,新增resolve->alias->"vue$":"vue/dist/vue.js"
  12. 12 resolve:{
  13. 13 alias:{ //设置vue被导入时包的路径
  14. 14 "vue$":"vue/dist/vue.js"
  15. 15 }
  16. 16 }
  17. 17 不方便,一般不用
  18. 18 因为在 webpack中,使用 import Vue from 'vue'导入的Vue构造器,功能不完整,只提供了runtime-only的方式
  19. 19 并没有提供像网页中那样的使用方式
  20. 20 第二种,此一个命令就可以 ---推荐
  21. 21 import Vue from '../node_modules/vue/dist/vue.js'
  22. 22 回顾包的查找规则:
  23. 23 1.找 项目根目录中有没有node_modules的文件夹
  24. 24 2.在node_modules中根据包名,找对应 的Vue文件夹
  25. 25 3.在vue文件夹中,找一个叫做package.json的包配置文件
  26. 26 4.在package.json文件中查找一个main 属性[main属性指定了,这个包在被加载时候的入口文件]
  27. 27 1导入login组件
  28. 28 src下新建login.vue文件 ->三部分组成:template style script
  29. 29 <template>
  30. 30 <div>
  31. 31 <h1>这是登录组件,使用.vue文件定义出来的</h1>
  32. 32 </div>
  33. 33 </template>
  34. 34 import login from './login.vue'
  35. 35 默认webpack没法打包.vue文件,需要安装相关的loader
  36. 36 cnpm i vue-loader@14 vue-template-compiler@2.6.0 -D //第二个需与下载的vue版本号一样
  37. 37 在配置文件中新增loader配置项{test:/\.vue/,use:'vue-loader'}
  38. 38 */
  1. 1 /* 总结梳理:webpack中使用vue
  2. 2 1.安装vue的包:cnpm i vue@2.6.0 -S
  3. 3 2.由于在 webpack 中推荐使用 .vue 这个组件模板定义组件,所有需安装能解析的loader
  4. 4 cnpm i vue-loader@14 vue-template_complier@2.6.0 -D
  5. 5 3.在main.js中,导入 vue 模块,import Vue from '../node_modules/vue/dist/vue.js'
  6. 6 4.在src下定义一个 .vue 结尾的组件,其中,组件有三部分组成:template style script
  7. 7 5.使用 import login组件 from './组件.vue' ,导入此组件
  8. 8 6.创建vm实例,var vm =new Vue({el:'#app',render:c=>c(login组件))
  9. 9 7.在页面中创建一个 id 为App的div元素,作为我们vm要控制的区域
  10. 10
  1. 1 /*----------render-----------
  2. 2 render:function(createElement){ //createElement是一个方法,调用它能够把指定的组件模板渲染为HTML结构
  3. 3 return createElement(login)
  4. 4 注意:这里return 的结果,会 替换页面中的 el 指定的那个容器
  5. 5 特点:传统的组件渲染方式 components 像插值表达式,只是插值,依旧是那个容器 ,传统的能放多个组件
  6. 6 而 render 方法像v-text,替换了容器,只能放一个组件
  7. 7
  8. 8 }
  9. 9 */
  1. 1 // 15.export default 和 export
  2. 2 /*module.exports={}这是Node中向外暴露成员的形式
  3. 3 在node中使用 var 名称=require('模块标识符')
  4. 4 es6中导入模块,使用import 模块名称 from '模块标识符' import '标识路径'
  5. 5 在es6中使用 export default 和 export 向外暴露
  6. 6 注意:export.default向外暴露的成员,可以使用任意变量来接收
  7. 7 注意:在一个模块中,export default只允许向外暴露一次
  8. 8 注意:在一个模块中,可以同时使用export default 和export 向外暴露成员
  9. 9 注意:使用 export 向外暴露的成员,只能使用 {} 的形式来接收,叫做 ----按需导出
  10. 10 注意:在一个模块中,export 可以向外暴露多个,同时,如果某些成员在import时,不需要则可以不在 {} 中定义
  11. 11 注意;使用export导出的成员,必须严格按照 导出时候的名称,来使用 {} 按需接收
  12. 12 注意;使用export导出的成员,如果要换个名称,可以使用 as 起别名
  13. 13 */
  1. 1 // 16.路由
  2. 2 /* cnpm i vue-router@3.1.2 -D
  3. 3 在main.js里
  4. 4 1.导入vue-router
  5. 5 import VueRouter from 'vue-router'
  6. 6 2.手动安装vue-router
  7. 7 Vue.use(VueRouter)
  8. 8 // 导入app组件
  9. 9 import app from './app.vue'
  10. 10 app.vue:
  11. 11 // <template>
  12. 12 // <div>
  13. 13 // <h3>这是APP组件</h3>
  14. 14 // <router-link to="/account">Account</router-link>
  15. 15 // <router-link to="/goodlist">Goodslist</router-link>
  16. 16 // <router-view></router-view>
  17. 17 // </div>
  18. 18 // </template>
  19. 19 // app组件是通过 vm 实例的render函数渲染出来的,
  20. 20 // render函数如果要渲染,渲染出来的组件只能放到 el:'#app'所指定的元素中去
  21. 21 // Account和Goodslist组件,是通过路由匹配监听到,所以这两个组件只能展示 到属于 路由 的router-view 中去
  22. 22 // 导入Acount组件
  23. 23 import account from './main/Account.vue'
  24. 24 import goodlist from './main/Goodslist.vue'
  25. 25 3.创建路由对象
  26. 26 var router =new VueRouter({
  27. 27 routes:[
  28. 28 //account goodlist
  29. 29 {path:'/account',component:account},
  30. 30 {path:'/goodslist',component:goodlist}
  31. 31 ]
  32. 32 })
  33. 33 var vm =new Vue({
  34. 34 el:'#app',
  35. 35 render:c=>c(app), //render会将 el 指定容器中所有内容清空覆盖
  36. 36 4.路由对象挂载到vm上
  37. 37 router
  38. 38 })
  39. 39 */
  1. 1 // 17.子路由,children:
  2. 2 // 导入Account的两个子组件
  3. 3 // import login from './subcom/login.vue'
  4. 4 // import register from './subcom/register.vue'
  5. 5 // 加在children属性里
  6. 6 /*var router =new VueRouter({
  7. 7 routes:[
  8. 8 //account goodlist
  9. 9 {
  10. 10 path:'/account',
  11. 11 component:account,
  12. 12 children:[
  13. 13 {path:'login',component:login},
  14. 14 {path:'register',component:register}
  15. 15 ]
  16. 16 },
  17. 17 {path:'/goodslist',component:goodlist}
  18. 18 ]
  19. 19 })*/
  1. /*scoped属性: lang属性
  2. .vue 文件里普通的style标签只支持普通的样式,如果想用scss或less需要为style元素设置lang属性 ,
  3. 推荐都为style开启scoped属性,如下:
  4. <style lang="scss" scoped>
  5. */
  1. 1 // 18.抽离路由
  2. 2 // 新建router.js :
  3. 3 /* 1.导入vue-router
  4. 4 import VueRouter from 'vue-router'
  5. 5 2剪切 组件
  6. 6 import account from './main/Account.vue'
  7. 7 import goodlist from './main/Goodslist.vue'
  8. 8 import login from './subcom/login.vue'
  9. 9 import register from './subcom/register.vue'
  10. 10 3.剪切路由对象
  11. 11 var router =new VueRouter({
  12. 12 routes:[
  13. 13 //account goodlist
  14. 14 {
  15. 15 path:'/account',
  16. 16 component:account,
  17. 17 children:[
  18. 18 {path:'login',component:login},
  19. 19 {path:'register',component:register}
  20. 20 ]
  21. 21 },
  22. 22 {path:'/goodslist',component:goodlist}
  23. 23 ]
  24. 24 })
  25. 25 //
  26. 26 4.把router暴露出去
  27. 27 export default router
  28. 28 5.导入 自定义路由模块
  29. 29 main.js里: import router from './router.js'
  30. 30 */
  1. 1 // 19.Mint-UI
  2. 2 // 1)导入所有的MintUI组件
  3. 3 /* 导入 MintUi
  4. 4 import MintUI from 'mint-ui'
  5. 5 // 可以省略node_modules这层目录
  6. 6 import 'mint-ui/lib/style.css'
  7. 7 // 将mintui安装到vue中
  8. 8 Vue.use(MintUI)
  9. 9 2)按需导入
  10. 10 import {Button} from 'mint-ui'
  11. 11 // 如果按需导入无样式效果,需全局导入样式
  12. 12 import 'mint-ui/lib/style.css'
  13. 13 // 使用vue.compnent()注册组件
  14. 14 Vue.component(Button.name,Button)
  15. 15 // Vue.use(Button) 作用同上
  16. 16 */
  17. 17
  18. 18 // 20.MUI
  19. 19 // 导入MUI - 类似bootstrap的代码片段
  20. 20 // MUI并不能npm 下载,需从github上下载包,解压出来,手动拷贝到项目中使用
  21. 21 // import '../lib/mui/css/mui.css'
  22. 22 //
  1. 1 package.json 各版本如下,防止出错,可以直接下载一样的版本来
  2. 2 {
  3. 3 "name": "webpack-study",
  4. 4 "version": "1.0.0",
  5. 5 "main": "webpack.config.js",
  6. 6 "dependencies": {
  7. 7 "jquery": "^3.4.1",
  8. 8 "mint-ui": "^2.2.13",
  9. 9 "vue": "^2.6.0",
  10. 10 "webpack": "^4.20.2",
  11. 11 "webpack-cli": "^3.3.7"
  12. 12 },
  13. 13 "devDependencies": {
  14. 14 "babel-core": "^6.26.3",
  15. 15 "babel-loader": "^7.1.4",
  16. 16 "babel-plugin-component": "^1.1.1",
  17. 17 "babel-plugin-transform-runtime": "^6.23.0",
  18. 18 "babel-preset-env": "^1.7.0",
  19. 19 "babel-preset-stage-0": "^6.24.1",
  20. 20 "bootstrap": "^4.3.1",
  21. 21 "css-loader": "^3.2.0",
  22. 22 "fiber": "^1.0.4",
  23. 23 "file-loader": "^4.2.0",
  24. 24 "html-webpack-plugin": "^3.2.0",
  25. 25 "less": "^3.10.3",
  26. 26 "less-loader": "^5.0.0",
  27. 27 "node-sass": "^4.12.0",
  28. 28 "popper.js": "^1.14.7",
  29. 29 "sass": "^1.23.0-module.beta.1",
  30. 30 "sass-loader": "^7.0.3",
  31. 31 "style-loader": "^1.0.0",
  32. 32 "url-loader": "^2.1.0",
  33. 33 "vue-loader": "^14.2.4",
  34. 34 "vue-router": "^3.1.2",
  35. 35 "vue-template-compiler": "^2.6.0",
  36. 36 "webpack-dev-server": "^3.8.0"
  37. 37 },
  38. 38 "scripts": {
  39. 39 "test": "echo \"Error: no test specified\" && exit 1",
  40. 40 "dev": "webpack-dev-server --open chrome "
  41. 41 },
  42. 42 "keywords": [],
  43. 43 "author": "",
  44. 44 "license": "ISC",
  45. 45 "description": ""
  46. 46 }
 

webpack 3/4踩坑,我太难了,从安装、卸载、到使用,各相应的版本号,sass-loader报错-版本的原因,webpack -v 不识别,没卸载干净的更多相关文章

  1. Python 装饰器填坑指南 | 最常见的报错信息、原因和解决方案

    本文为霍格沃兹测试学院学员学习笔记. Python 装饰器简介 装饰器(Decorator)是 Python 非常实用的一个语法糖功能.装饰器本质是一种返回值也是函数的函数,可以称之为“函数的函数”. ...

  2. 基于 Laravel 开发 ThinkSNS+ 中前端的抉择(webpack/Vue)踩坑日记【ThinkSNS+研发日记系列】

    在上一篇文章< ThinkSNS+基于Laravel master分支,从1到 0,再到0.1>,简单的介绍了 社群系统ThinkSNS+ ,这里分享在开发过程中,前端选择的心理活动. L ...

  3. 基于 Laravel 开发 ThinkSNS+ 中前端的抉择(webpack/Vue)踩坑日记

    在上一篇文章< ThinkSNS+基于Laravel master分支,从1到 0,再到0.1>,简单的介绍了 ThinkSNS+ ,这里分享在开发过程中,前端选择的心理活动. Larav ...

  4. 超详细解锁Webpack步骤,踩坑记录

    webpack 核心 entry: 入口 output: 输出 loader: 模块转换器,用于把模块原内容按照需求转换成新内容 插件(plugins): 扩展插件,在webpack构建流程中的特定时 ...

  5. 【nodejs代理服务器二】nodejs webpack打包配置踩坑总结

    接着上篇用Nodejs开发web代理,防止web渗透.如果部署到正式环境,需要进行打包配置. 我在用webpack打包配置中遇到了几个错误,总结如下: webpack环境变量问题 https://ww ...

  6. MySQL踩坑及MySQL解压版安装

    MySQL默认当前时间: MySQL5.5版本以下是不支持:datetime default now() 的,只能写成 timestamp default now() ; 而MySQL5.6以上是支持 ...

  7. npm run dev 报错 版本太低

    解决方案是: 先用命令: npm -v 查看下你的版本(我原来是 V3.1 不行) 然后用 cnpm install -g npm  更新版本 npm - v 变成最新的4.0.4 npm run d ...

  8. Spark 1.6升级2.x防踩坑指南

    原创文章,谢绝转载 Spark 2.x自2.0.0发布到目前的2.2.0已经有一年多的时间了,2.x宣称有诸多的性能改进,相信不少使用Spark的同学还停留在1.6.x或者更低的版本上,没有升级到2. ...

  9. [置顶] xamarin android toolbar(踩坑完全入门详解)

    网上关于toolbar的教程有很多,很多新手,在使用toolbar的时候踩坑实在太多了,不好好总结一下,实在浪费.如果你想学习toolbar,你肯定会去去搜索androd toolbar,既然你能看到 ...

  10. Ubuntu 16.04 安装Mysql 5.7 踩坑小记

    title:Ubuntu 16.04 安装Mysql 5.7 踩坑小记 date: 2018.02.03 安装mysql sudo apt-get install mysql-server mysql ...

随机推荐

  1. PNAS:微生物组分析揭示人类皮肤的独特性

    https://blog.csdn.net/woodcorpse/article/details/87989663

  2. Linux进程调度算法

    进程的状态 进程的基本状态 就绪:进程已获得除处理机以外的所需资源,等待分配处理机资源 执行:进程正在占用处理机资源执行 阻塞:进程等待某种条件,在条件满足之前无法执行.例如发起I/O系统调用,等待I ...

  3. HttpClient详细使用示例(转)

    https://blog.csdn.net/justry_deng/article/details/81042379

  4. php递归算法多级分类

    /** * 递归实现无限极分类 * @param $array 分类数据 * @param $pid 父ID * @param $level 分类级别 * @return $list 分好类的数组 直 ...

  5. create-react-app卸载与升级

    用create-react-app 创建项目发现报错 You are running `create-react-app` 4.0.3, which is behind the latest rele ...

  6. Java基础学习:2、Java数据类型及逻辑运算符

    1.数据类型: 数据类型范围: byte:-2^7 ~ 2^7-1,即-128 ~ 127.1字节.Byte.末尾加B short:-2^15 ~ 2^15-1,即-32768 ~ 32767.2字节 ...

  7. Delphi7_VCL线程的使用(一)

    1.TThread类的属性 (1)FreeOnTerminate属性 该属性用于指定当前的线程终止时是否自动删除线程对象.默认值为true. 语法: 1 Property FreeOnTerminat ...

  8. TFLCD编程过程中遇到的问题之.\Objects\EXTI_Project.axf: Error: L6218E: Undefined symbol POINT_COLOR (referred from tflcd.o).

    在TFLCD屏幕中遇到的问题及解决方案 1.问题提出 在对正点原子提供的有关TFLCD屏幕做移植过程中,编译过程中没有报错,但是链接时就出现了报错,报错信息如下图所示: 像这种错误,无法定义到错误所在 ...

  9. 将map转为Bean的工具类 BeanUtil

    Map<String,Object> pbclwhMainMap = (Map<String,Object>)param.get("pbclwhMain") ...

  10. 理解Node.js中的流(译)

    前言 本文部分译自by: Liz Parody in Node.js, 2019.11.23,英文良好的同学建议阅读原版. Node.js中的流是众所周知的难理解,而且更加难用.按照Dominic T ...