美文网首页
webpack打包前端资源项目

webpack打包前端资源项目

作者: 亦庄攻城狮 | 来源:发表于2018-07-16 09:47 被阅读0次
npm init   
npm install webpack --save-dev
npm install html-webpack-plugin --save-dev
npm install babel-preset-latest  --save-dev
npm install babel loader babel-core babel-plugin-transform-runtime babel-preset-es2015  babel-runtime --save-dev
npm install style-loader css-loader --save-dev
npm install postcss-loader --save-dev  
npm install autoprefixer --save-dev
npm install html-loader --save-dev 
npm install ejs-loader --save-dev 
npm install file-loader --save-dev
npm install url-loader --save-dev
npm install image-webpack-loader --save-dev

webpack打包命令执行后一直会提示 Pleasl install webpack-cli之类提示
npm install webpack-cli -d 执行后仍然提示 毫无作用
解决方法:全局安装 npm install webpack-cli -g

扩展安装
npm install html-webpack-plugin --save-dev

打包项目css遇到 can't resolve confont.eot .woff .ttf 之类的错误阻碍

image.png
解决方法:1.先更改font文件夹确认为fonts 2.确认报错文件在fonts文件夹里存在并且可用
3.rules 规则如下确保为url-loader
{
 test: /\.woff(\?t=\d+\.\d+\.\d+)?$/,
 use: 'url-loader?limit=100000&mimetype=application/font-woff'
},
{
 test: /\.woff2(\?t=\d+\.\d+\.\d+)?$/,
 use: 'url-loader?limit=100000&mimetype=application/font-woff'
},
{
 test: /\.ttf(\?t=\d+\.\d+\.\d+)?$/,
 use: 'url-loader?limit=100000&mimetype=application/octet-stream'
},
{
 test: /\.eot(\?t=\d+\.\d+\.\d+)?$/,
 use: 'url-loader?limit=100000&mimetype=application/font-eot'
}

打包后网页报错jQuery is not defined、$ is not defined
解决办法

// webpack.config.js plugin  引入
new webpack.ProvidePlugin({
      $: "jquery",
      jQuery: "jquery"
})
// 入口文件中加入index.js
window.$ = require("jquery");

开发实例 webpack.config.js

var webpack = require("webpack");
var path = require("path");
var htmlWebpackPlugin = require("html-webpack-plugin");
module.exports = {
    entry: {
        login:'./indexLogin.js',
        khdStart:'./indexKhdStart.js'
    },
    output: {
        path: path.resolve(__dirname,'./dist'),
        filename: 'js/[name]-bundle.js',
        publicPath: "./"
    }, 
    plugins: [ 
        new htmlWebpackPlugin({       //根目录的index.html生成dist下的html,可以多个生成
            filename: 'login.html',
            template: './src/login.html',   
            inject: 'head',           //script标签的放置
            minify: {                    //html压缩
            //removeComments: true,     //移除注释
            //collapseWhitespace: true //移除空格
            },
            chunks:['login']
        }),
        new htmlWebpackPlugin({       //根目录的index.html生成dist下的html,可以多个生成
            filename: 'khdStart.html',
            template: './src/khdStart.html',   
            inject: 'head',           //script标签的放置
            minify: {                    //html压缩
            //removeComments: true,     //移除注释
            //collapseWhitespace: true //移除空格
            },
            chunks:['khdStart']
        }),
        new webpack.ProvidePlugin({
            $: "jquery",
            jQuery: "jquery"
        })
    ],
    module:{
        rules: [
            {
                test: /\.js$/,
                loader: 'babel-loader',
                include: path.resolve(__dirname,'/src'),
                exclude: path.resolve(__dirname,'/node_modules')
            },
            {
                test: /\.css$/,
                loader: 'style-loader!css-loader?importLoaders=1!postcss-loader'
            },
            {
                test: /\.scss$/,
                loader: 'style-loader!css-loader!postcss-loader!sass-loader' 
            },
            {
                test: /\.html$/,
                loader: 'html-loader'
            },
            {
                test: /\.tpl$/,
                loader: 'ejs-loader'
            },
            {
                test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
                loader: 'url-loader'
            },
            {
                test: /\.woff(\?t=\d+\.\d+\.\d+)?$/,
                use: 'url-loader?limit=100000&mimetype=application/font-woff'
            },
            {
                test: /\.woff2(\?t=\d+\.\d+\.\d+)?$/,
                use: 'url-loader?limit=100000&mimetype=application/font-woff'
            },
            {
                test: /\.ttf(\?t=\d+\.\d+\.\d+)?$/,
                use: 'url-loader?limit=100000&mimetype=application/octet-stream'
            },
            {
                test: /\.eot(\?t=\d+\.\d+\.\d+)?$/,
                use: 'url-loader?limit=100000&mimetype=application/font-eot'
            }
        ]
    }
}

项目结构

image.png

踩了些webpack的雷,在此列出部分error的解决及示例,如更好的解决方式和代码问题请各路大神下方评论交流

相关文章

  • webpack打包前端资源项目

    webpack打包命令执行后一直会提示 Pleasl install webpack-cli之类提示npm in...

  • Webpack入门教程一

    Webpack介绍 webpack是一款前端模块化打包工具,通过webpack能够方便地对项目所依赖的模块、资源(...

  • Webpack+react+es6创建项目

    Webpack 是当下最热门的前端资源模块化管理和打包工具. 使用webpack 搭建react 项目(es6) ...

  • webpack基础用法

    webpack webpack是一种前端资源构建工具,一个静态模块打包器,在webpack看来,前端所有资源文件都...

  • Webpack 入门教程

    Webpack 是一个前端资源加载/打包工具。 安装 Webpack 使用 cnpm 安装 webpack: 创建...

  • Webpack初体验

    Webpack是什么? webpack是一个前端资源加载/打包工具,其主要功能为:使用loaders将项目中依赖到...

  • Webpack2中的NamedModulesPlugin与Has

    要讨论Webpack 2中新增的这两个plugin的功能,还要先从使用Webpack打包的项目的前端资源缓存方案说...

  • webpack

    什么是webpack webpack是一个模块打包器(bundler)。在webpack看来,前端的所有资源文件(...

  • Webpack打包

    一、Webpack 1、webpack 是什么?有什么用?有哪些同类工具? (1)WebPack是一个前端资源打包...

  • webpack 入门

    一、Webpack 简介 1.1 webpack 是什么 webpack 是一种前端资源构建工具,一个静态模块打包...

网友评论

      本文标题:webpack打包前端资源项目

      本文链接:https://www.haomeiwen.com/subject/taevpftx.html