最近古老的项目组突然想学学“新”的东西(相对于jq加ligerui),选了比较保守的一些技术让我们这些小的学。我是自然很高兴,毕业大半年了,一直在传统it里面当前端,东西基本都是原始级的前端,原生js+jq+原生css来写政府项目。虽然比较古老一些,但是对基础知识得到了一定的锻炼吧。
这半年都没怎么看新东西,果然与世隔绝。
简单的配置了一下webpack,整合了bootstrap4.0和anjular1.x系列(不是2.0以后)。目录如下:
(假设你会鼓捣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}}
另外,各种模块的更新都可能会对打包有影响,你要注意你使用的时间,控制台中一般都有提示,一些最新的写法啥的,我继续研究去了。