11、webpack指南(配置参考,觉得这位大神写的结构很清晰,一目了然)
常见错误:

1、babel-loader 找不到
基本自己遇到的是cnpm安装下,npm安装下就好了(网上有说是node版本问题?)
babel-loader依赖于babel-core
es6->es5还需要安装babel-preset-es2015 2、关于css方面的报错
1)、loader执行顺序由右往左,一般在写css和sass的loader时尽量这样写
{
test:/\.css$/,
loader: ExtractTextPlugin.extract('style-loader', 'css-loader')
},
{
test:/\.scss$/,
loader:ExtractTextPlugin.extract('style-loader', 'css-loader!sass-loader')
}
//一般这里的错误在test下面的loader被写成loaders方式,或者里面的引入loader写法错误
//运用ExtractTextPlugin方式独立导入不要忘记安装这个插件的loader还有在plugins中执行new ExtractTextPlugin("css/[name].css"), 3、引入全部图片的时候报错找不到loader等
下面这是可以执行的方法:
include: [path.resolve(__dirname, "src/image")],
开始的时候自己错误的写成了--->
include:'./src/image/' //这种方式时错误的 下面贴图片loader和字体loader的代码——>
// 图片 loader
{
test: /\.(jpe?g|png|gif|svg)$/i,
loader: 'url-loader',
query: {
limit: 10000,
name: '/image/[name].[ext]'
},
include: [path.resolve(__dirname, "src/image")],
},
// 字体loader
{
test: /\.(eot|woff|woff2|ttf|svg)$/,
loader: 'url-loader',
query: {
limit: 5000,
name: '/font/[name]-[hash:8].[ext]'
}
} 4、其他莫名其妙的错误
1)之前莫名其妙报错最后发现是写错代码了
module.exports
被自己错误的写成了
module.export 5、报以下错误,发现node_modules\node-sass\vendor 不存在 ERROR in ENOENT: no such file or directory, scandir 'E:\work\test\webpacktest\test3\node_modules\.3.11.1@node-sass\vendor'
@ ./src/css/style.scss 4:14-137 解决方法:
npm rebuild node-sass 就解决所有问题了【需要安装visual studio 2015,并 执行 npm config set msvs_version 2015】 每次执行编译前清空输出目录
CleanWebpackPlugin = require('clean-webpack-plugin') //需要安装插件 //在plugins中写,‘dist’为输出目录
new CleanWebpackPlugin(['dist'], {
root: '', // An absolute path for the root of webpack.config.js
verbose: true, // Write logs to console.
dry: false // Do not delete anything, good for testing.
}), 常用的执行命令
//写在package.json中
"scripts": {
"dev": "webpack-dev-server --inline --hot",
"build": "cross-env NODE_ENV=production webpack --progress --hide-modules",
"predeploy": "npm run build",
"deploy": "surge --project . --domain vue-2-simple-routing-example.surge.sh"
}, //在webpack.config.js的module.exports里面写-->例子,完整的看官网
devServer: {
// Enable history API fallback so HTML5 History API based
// routing works. This is a good default that will come
// in handy in more complicated setups.
historyApiFallback: true, // Unlike the cli flag, this doesn't set
// HotModuleReplacementPlugin!
hot: true,
inline: true, // Display only errors to reduce the amount of output.
// stats: 'errors-only', host: "localhost", // Defaults to `localhost` process.env.HOST
port: "8081", // Defaults to 8080 process.env.PORT
}
//webpack-dev-server只是相当于建一本地服务器,--hot开启热加载(但是我本地开启了不仅html连css改动都没变化) //暂时自己用webpack -w --devtool source-map
//仅用来编译css和js之类的,手动刷新... # 常用的loader css-loader //转义css
style-loader //转义css
sass-loader //转义scss文件
node-sass //安装sass-loader则必装
file-loader //url-loader则必装此插件
html-loader
url-loader //图片,字体等需要用上
extract-text-webpack-plugin //独立css
html-webpack-plugin //执行分配html
jquery
webpack
webpack-dev-server //建立本地服务器
expose-loader //全局声明??
babel-loader
babel-core //安装babel-loader则必装
babel-preset-es2015
open-browser-webpack-plugin //自动打开浏览器
webpack-validator //验证是否正确 cnpm install babel-core babel-loader babel-preset-es2015 extract-text-webpack-plugin file-loader html-webpack-plugin jquery node-sass sass-loader url-loader file-loader webpack css-loader style-loader webpack-dev-server open-browser-webpack-plugin --save-dev # 常用片段 ## jquery --用来全局引入jquery类似shim
第一种方法
jquryPath = path.resolve(node_modules, 'jquery/dist/jquery.min.js');
resolve: {
alias: {
'jquery': jquryPath,
},
extensions: ['', '.js', '.json']
},
var providePlugin = new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery',
'window.jQuery': 'jquery',
'window.$': 'jquery',
});
第二种方法
{
test: require.resolve('jquery'), // 此loader配置项的目标是NPM中的jquery
loader: 'expose?$!expose?jQuery', // 先把jQuery对象声明成为全局变量`jQuery`,再通过管道进一步又声明成为全局变量`$`
}, 如果需要使用babel-preset-es2015的话需要在文件下创建一个.babelrc:
{
"presets": ["es2015"]
}
或者也可以放到packjson里面 # git提交配置--不提交指定目录文件 新建一个.gitignore的文件,在里面写格式如下: node_modules/
src/
npm-debug.log # 常用启动命令
"start": "webpack-dev-server --hot --inline" # 额外东西 ## CommonJS写法 eg:
nav.js---- function getNav(){
var el=document.getElement.querySelectorAll('.nav');
return el.innerHTML;
}
module.exports= getNav; main.js---- var nav=require('./nav');
console.log(nav()) ######## 需要强烈注意到几个点: ## 1、loder的执行顺序是从右到左 npm安装node-sass模块的时候,会卡在 node scripts/install.js这里,因为要去github.com上下载二进制源码,众所周知的原因,国内的网络上github.com速度太不稳定了,所以安装很慢。
这里推荐一种极速安装的方法,当然还是使用万能的淘宝镜像源。
打开~/.npmrc(windows用户打开 c:\Users\当前用户名\.npmrc) SASS_BINARY_SITE=https://npm.taobao.org/mirrors/node-sass/ 增加一行npm install 之后就可以了。

webpacke踩坑-新手的更多相关文章

  1. 日常踩坑-------新手使用idea

    mybatis在idea的maven项目中的坑 今天遇到mybatis的报错,搞了好久才搞懂,在网上找了好久的相似案例,也没有搞定,先来看下网上常见的解决办法吧,相信也能解决大部分人的报错. 1.ma ...

  2. JavaScript 新手的踩坑日记

    引语 在1995年5月,Eich 大神在10天内就写出了第一个脚本语言的版本,JavaScript 的第一个代号是 Mocha,Marc Andreesen 起的这个名字.由于商标问题以及很多产品已经 ...

  3. echart 新手踩坑

    仪表盘踩坑 我采用的是单文件引入的方式来加载echarts图标也可以使用配置等方式详情参考文档,如果同学们要做出更加丰富的样式请参考文档配置手册配置手册:http://echarts.baidu.co ...

  4. 【常见踩坑】USB调试安装失败(Installation failed with message INSTALL_CANCELED_BY_USER)

    一.写在前面 最近一直在忙活着项目重构,忙活了一个多月(那是天天加班,不分昼夜呀,ps:这不是我司要求的哈),终于把沉积了三四年的老项目给重构了,目前在测试阶段,也总算有了点闲时来跟大家分享分享一些问 ...

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

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

  6. 微信小程序踩坑集合

    1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=1476434678461 2:简易教程:https://mp.weixin.qq.com/debu ...

  7. Spring Boot 开发系列一 开发踩坑

    这是学习spring boot 的第二周,公司号称这玩意是啥都不会的新手就可以填空开发,于是决定上手一把,怎么说我也是搞了快七八年的.NET和.NETcore,没想到无情打脸,快被这个能填空开的IDE ...

  8. manjaro xfce 18.0 踩坑记录

    manjaro xfce 18.0 踩坑记录 1 简介1.1 Manjaro Linux1.2 开发桌面环境2 自动打开 NumLock3 系统快照3.1 安装timeshift3.2 使用times ...

  9. 02-NVIDIA Jetson TX2 通过JetPack 3.1刷机完整版(踩坑版)

    未经允许,不得擅自改动和转载 文 | 阿小庆 2018-1-20 本文继第一篇文章:01-NVIDIA Jetson TX2开箱上电显示界面 TX2 出厂时,已经自带了 Ubuntu 16.04 系统 ...

随机推荐

  1. Django搭建博客网站(一)

    Django搭建自己的博客网站(一) 简介 这个系列主要是通过使用Django这个python web框架实现一个简单的个人博客网站.对Django有疑问可以上Django官网查文档. 功能 后台管理 ...

  2. 撸一撸Spring Cloud Ribbon的原理

    说起负载均衡一般都会想到服务端的负载均衡,常用产品包括LBS硬件或云服务.Nginx等,都是耳熟能详的产品. 而Spring Cloud提供了让服务调用端具备负载均衡能力的Ribbon,通过和Eure ...

  3. qt的编译

    cp qt-everywhere-opensource-src-5.5.0.tar.gz /opt/qt/2.1 解压qt源码 sudo tar xzf qt-everywhere-opensourc ...

  4. php+redis 学习 五 消息推送

    <?php header('content-type:text/html;chaeset=utf-8'); /** * redis实战 * * 发布 * * @example php publi ...

  5. Go解析写死的json

    func TestAliAfpAdapter_AskAd_Banner(t *testing.T) { apiData := getApiData() apiData.ApiInfo.ApiPosit ...

  6. 原生ajax写的上拉加载

    上拉加载的思路 1 上拉加载是要把屏幕拉到最底部的时候触发ajax事件请求数据 2.所有要获取屏幕的高度 文档的高度 和滚动的高度 下面的代码是已经做好了兼容的可以直接拿来用 Javascript: ...

  7. .NET平台开源项目速览(19)Power BI神器DAX Studio

    PowerBI更新频繁,已经有点更不上的节奏,一直在关注和学习中,基本的一些操作大概是没问题,更重要的是注重Power Query,M函数,以及DAX的使用,这才是核心.   上个月研究了DAX的一些 ...

  8. 分布式高性能消息处理中心HPMessageCenter

    # HPMessageCenter 高性能消息分发中心.用户只需写好restful接口,在portal里面配置消息的处理地址,消息消费者就会自动访问相关接口,完成消息任务. ### 部署说明 **创建 ...

  9. Docker 入门之创建service(一)

    在一个分布式应用中,我们把应用的不同层叫做"Services".比如,一个视频共享应用,它包含存储数据到数据库的服务,用户上载后后台进行的视频解码服务,前端服务等等. 然而,一个服 ...

  10. HDU - 1407 打表

    思路:预处理10000以内所有数的三平方和即可. AC代码 #include <cstdio> #include <cmath> #include <algorithm& ...