index.html代码结构如下:
console.log('module-one');
module-two代码
console.log('module-two');
entry.js代码
require('./module-one');
require('./module-two');
这个文件里引用的是bundle.js,但是learning文件夹下没有该文件。这时就需要使用webpack编译生成。
安装好webpack最好采用全局安装。
在命令行执行webpack js/entry.js bundle.js
之后的文件目录结构为
当打开index.html是,在控制台可以看到module-one和module-two的执行。
这样就完成了webpack最基本的编译和运行。
***************************************************************************************************
完成了基础的第一步,接下来添加配置文件。在上面的操作过程中,每次执行编译文件的时候都要手动添加入口文件和编译后的文件,这样很不人性化。
这时就需要一个webpack.config.js文件
module.exports = {
//声明文件来源路径,指定文件的映射关系,利于以后的debug
devtool: "sourcemap",
//入口文件
entry:"./js/entry.js",
//输出文件
output:{
path: __dirname,
filename:"bundle.js"
}
};
目录结构如下:
接下来去命令行直接执行:webpack
可以看到会自动生成两个文件,一个是bundle.js一个是bundle.map.js
bundle.map.js是表示文件生成的映射关系,暂时没用,可以使用于后面的dubug。
*******************************************************************
为了能够使用一些库,或者加载更多的依赖文件loader等,我们需要生成一个package.json。
在命令行执行:npm init
一直enter确认下去,即可生成一个默认的package.json文件。
可以在命令行安装jquery,执行命令:npm install jquery --save-dev
然后可以修改module-one的代码
这样我们就可以创建一个css/style.css文件,然后被引入到入口文件entry.js中。
entry.js代码结构
require('./module-one');
require('./module-two');
require('../css/style.css');
在命令窗口执行命令,就可以看到背景色为红色。
在webpack.config.js里配置babel:
babel:{
presets:['es2015','stage-0'],
plugins:['transform-runtime']}
或者放到.babelrc文件中
{
"presets":["es2015","stage-0"],
"plugins":["transform-runtime"]}
babel文件主要是为了可以使用es6.
webpack.config.js代码如下
module.exports = {
//声明文件来源路径,指定文件的映射关系,利于以后的debug
devtool: "sourcemap",
//入口文件
entry:"./js/entry.js",
//输出文件
output:{
path: __dirname,
filename:"bundle.js"
},
module:{
loaders:[
//css-loader style-loader babel-core babel-loader babel-plugin-transform-runtime babel-preset-es2015 babel-preset-stage-0 babel-runtime
{
test:/\.css$/,
loader:"style!css"
},
{
test:/\.js$/,
loader:"babel",
exclude:/node_modules/ //【排除该文件夹的js文件不执行】
}
]
},
babel:{
presets:['es2015','stage-0'],
plugins:['transform-runtime']
}
}
引入了babel之后,就可以使用es6语法。
可以将module-one代码修改
import $ from 'jquery';
$('h1').html('It is true and babel is running');
之后就可以在命令窗口运行webpack,此时打开index可以看到页面显示的是It is true and babel is running。说明babel正常运行了。
在vue的项目中引用.scss文件,用webpack编辑
首先安装scss文件的依赖
css-loader
style-loader
vue-style-loader
scss(非必须)
scss-loader
sass-loader
node-sass
然后配置webpack.base.conf.js文件
《添加scss文件解析》
module: {
rules: [
{
test: /\.vue$/,
loader: 'vue-loader',
options: {
loaders: {
'scss': 'style-loader!css-loader!sass-loader'
}
}
},
需要在vue文件style标签使用scss的话,需要声明一下: