webpack整合bootstrap4.0和anjular1.x系列

最近古老的项目组突然想学学“新”的东西(相对于jq加ligerui),选了比较保守的一些技术让我们这些小的学。我是自然很高兴,毕业大半年了,一直在传统it里面当前端,东西基本都是原始级的前端,原生js+jq+原生css来写政府项目。虽然比较古老一些,但是对基础知识得到了一定的锻炼吧。

这半年都没怎么看新东西,果然与世隔绝。

简单的配置了一下webpack,整合了bootstrap4.0和anjular1.x系列(不是2.0以后)。目录如下:

webpack整合bootstrap4.0和anjular1.x系列_第1张图片

假设你会鼓捣npm命令那些玩意)各种要加载的模块以及版本可以看我的package.json(babel那些和主题无关,是jsx和es6用的)

除了webpack 和webpack-dev-server和bootstrap4.0以及anjular1.x要注意一下版本,其他的可以放心使用最新版(相对于20180409)

{
  "name": "webpack_test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "webpack",
    "server": "webpack-dev-server --open"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "angular": "^1.6.5",
    "bootstrap": "^4.0.0",
    "css-loader": "^0.28.11",
    "jquery": "^3.3.1",
    "node-sass": "^4.8.3",
    "popper.js": "^1.14.3",
    "resolve-url-loader": "^2.3.0",
    "sass-loader": "^6.0.7",
    "style-loader": "^0.20.3",
    "url-loader": "^1.0.1",
    "webpack": "^3.5.5",
    "webpack-dev-server": "^2.8.2"
  },
  "devDependencies": {
    "babel-core": "^6.26.0",
    "babel-loader": "^7.1.4",
    "babel-preset-env": "^1.6.1",
    "babel-preset-react": "^6.24.1",
    "expose-loader": "^0.7.5"
  }
}

安这东西的时候不能急,很多版本的问题在里面,多百度百度。下面是我的webpack.config.js。如果你没有入门,推荐你看点击打开链接 这个入门教程写的很好,看完了基本就明白个大概了。

/**
 * Created by dongge on 2018/4/8.
 */
var webpack = require('webpack');

module.exports = {
    devtool:'eval-source-map',
    entry:__dirname + "/app/entry.js",
    output:{
        path:__dirname +'/public',
        filename:"bundle.js"
    },
    devServer: {
        contentBase: "./public",//本地服务器所加载的页面所在的目录
        historyApiFallback: true,//不跳转
        inline: true//实时刷新
    },
    module:{
        rules:[
            {
                test:require.resolve('jquery'),
                loader:'expose-loader?$!expose-loader?jQuery'
            },
            {
                test: /(\.jsx|\.js)$/,
                use: {
                    loader: "babel-loader",
                    options: {
                        presets: [
                            "env", "react"
                        ]
                    }
                },
                exclude: /node_modules/
            },
            {test: /\.css$/, loader: 'style-loader!css-loader'},
            {test: /\.(png|jpg|ttf)$/, loader: 'url-loader?limit=8192'}

        ]
    },
    plugins:[
        new webpack.ProvidePlugin({
            $: "jquery",
            jQuery: "jquery",
            'window.$':'jquery',
            'window.jQuery':'jquery',
            Popper: ['popper.js', 'default']
        })

    ]
}

接下来我们在入口文件(entry.js)中引入各种要打包的文件:

/**
 * Created by dongge on 2018/4/8.
 */
var angular = require('angular');//引入angular
var ngModule = angular.module('app',[]);//定义一个angular模块
// require('./directives/hello-world/hello-world.js')(ngModule);//引入指令(directive)文件
require('./css/style.css');//引入样式文件
require('bootstrap/dist/css/bootstrap.css')
require('bootstrap/dist/js/bootstrap.js')

然后我们在index.html中简单测试一下angular

 


    
    Webpack Sample Project
    


{{user}}

另外,各种模块的更新都可能会对打包有影响,你要注意你使用的时间,控制台中一般都有提示,一些最新的写法啥的,我继续研究去了。

你可能感兴趣的:(前端笔记)