react雕刻网站——开发环境配置(2)

react雕刻网站——开发环境配置(2)_第1张图片
yarn ,webpack配置

|——yarn的安装

    输入npm install yarn进行安装

react雕刻网站——开发环境配置(2)_第2张图片

输入 yarn-v 查看版本

查看对应文件夹


react雕刻网站——开发环境配置(2)_第3张图片

                                                         yarn的基本用法

1、初始化一个新的项目

yarn init

2、添加一个依赖包

yarn add  [package]yarnadd [package]@[version]yarnadd [package]@[tag]

3、安装所有的依赖包

yarn 或者 yarn install

4、npm 与 yarn命令比较

NPM  YARN说明

npm init                                   yarn init                             初始化某个项目

npm install/link                          yarn install/link                默认的安装依赖操作

npm install taco —save            yarn add taco                  安装某个依赖,并且默认保存                                                                                              到  package.

npm uninstall taco —save          yarn remove taco          移除某个依赖项目

npm install taco —save-dev       yarn add taco —dev       安装某个开发时依赖项目

npm update taco —save             yarn upgrade taco          更新某个依赖项目

npm install taco --global              yarn global add taco      安装某个全局依赖项目

npm publish/login/logout             yarn publish/login/logout   发布/登录/登出,一系列                                                                                                       NPM Registry操作

npm run/test                                 yarn run/test                       运行某个命令


|——webpack的安装(方便文件打包)

(我使用的是3.10.0版本)

安装命令:yarn add [email protected] --dev

react雕刻网站——开发环境配置(2)_第4张图片


共用54.14.s我们安装成功了

查看文件目录


react雕刻网站——开发环境配置(2)_第5张图片
需要我们新建webpack.cong.js文件


见文件目录


react雕刻网站——开发环境配置(2)_第6张图片
需要我们新建webpack.cong.js文件

在webpack.config.js中写入

const path = require('path');

module.exports = {

  entry: './path/to/my/entry/file.js',

  output: {

    path: path.resolve(__dirname, 'dist'),

    filename: 'my-first-webpack.bundle.js'  }

};


react雕刻网站——开发环境配置(2)_第7张图片


新建文件夹src,里面创建app.js文件


react雕刻网站——开发环境配置(2)_第8张图片
新建文件夹src,里面创建app.js文件

修改webpack.configk.js出口,入口

const path = require('path');

module.exports = {

    entry: './src/app.js', //入口   

     output: {

        path: path.resolve(__dirname, 'dist'),

        filename: 'app.js'    },

};

执行命令

node_modules/.bin/webpack

在dist目录下就能看到打包好的app.js

最基本的webpack打包就弄好了



react雕刻网站——开发环境配置(2)_第9张图片
打包成功

检查文件夹


react雕刻网站——开发环境配置(2)_第10张图片
会在自动生成的dist文件发现app,js文件

======================================文件类型的处理==============================


react雕刻网站——开发环境配置(2)_第11张图片
需要处理的文件类型

|——安装html插件html-webpack-plugin

安装命令:

yarn add [email protected] --dev

react雕刻网站——开发环境配置(2)_第12张图片
安装html插件html-webpack-plugin

第一步:在webpack.config.js文件下配置html-webpack-plugin

const path = require('path');

const HtmlWebpackPlugin = require('html-webpack-plugin')

module.exports = {

    entry: './src/app.js',//入口

    output: {

        path: path.resolve(__dirname, 'dist'),

        filename: 'app.js'

    },

    plugins: [

        new HtmlWebpackPlugin({

            template: './src/index.html'             //template是生成html文件按自己定义的模板,路径定义为./src/index.html

        })           

    ]

};


react雕刻网站——开发环境配置(2)_第13张图片


react雕刻网站——开发环境配置(2)_第14张图片
新建html文件


react雕刻网站——开发环境配置(2)_第15张图片
打包成功


react雕刻网站——开发环境配置(2)_第16张图片
查看文件夹,打包成功


react雕刻网站——开发环境配置(2)_第17张图片
打包的index.html引入app.js

|——安装javasrcipt插件babel

安装命令:

yarn add [email protected] [email protected] [email protected] --dev

安装完命令可以在package.json,多了几个属性

"babel-core": "6.26.0","babel-loader": "7.1.2","babel-preset-env": "1.6.1",

react雕刻网站——开发环境配置(2)_第18张图片
react雕刻网站——开发环境配置(2)_第19张图片

|——webpack.config,js配置babel插件

const path = require('path');

const HtmlWebpackPlugin = require('html-webpack-plugin')

module.exports = {

    entry: './src/app.js',//入口   

     output: {

        path: path.resolve(__dirname, 'dist'),

        filename: 'app.js'   

},

    module: {

        rules: [

            {

                test: /\.m?js$/,

                exclude: /(node_modules)/,

                use: {

                    loader: 'babel-loader',

                    options: {

                        presets: ['env']

                    }

                }

            }

        ]

    },

    plugins: [

        new HtmlWebpackPlugin({ template: './src/index.html'  })

    ]

};


react雕刻网站——开发环境配置(2)_第20张图片


react雕刻网站——开发环境配置(2)_第21张图片
在app.js简单写es6语法


react雕刻网站——开发环境配置(2)_第22张图片
再打包一次


react雕刻网站——开发环境配置(2)_第23张图片
打开dist中编译的app.js可以看到文件已经编译成功

|——.安装react插件babel-preset-react

安装命令

yarn add [email protected] --dev

webpack.config.js配置

const path = require('path');

const HtmlWebpackPlugin = require('html-webpack-plugin')

module.exports = {

entry: './src/app.jsx', //入口

output: {

path: path.resolve(__dirname, 'dist'),

filename: 'app.js'

},

module: {

rules: [

{

test: /\.m?jsx$/,

exclude: /(node_modules)/,

use: {

loader: 'babel-loader',

options: {

presets: ['env', 'react']

}

}

},

// css文件处理

{

test:/\.css$/i,

use: ['style-loader', 'css-loader'],

},

]

},

plugins: [

new HtmlWebpackPlugin({

template: './src/index.html' //template是生成html文件按自己定义的模板,路径定义为./src/index.html

})

]

};

|——在项目中添加react.js

安装命令

yarn add [email protected] [email protected]

第一步:在src目录下的app.js添加react语法试一下

import React from 'react'import ReactDOM from 'react-dom'

ReactDOM.render(

hello, world

,   document.getElementById('app')

)

第二步:把app.js后缀改成app.jsx

第三步:webpack.config.js修改entry的入口文件后缀修改成jsx

entry: './src/app.jsx'

第四步:编译的后缀名js改成jsx

第五步:执行打包命令node_modules/.bin/webpack看看效果

打开打包好的dist/index.html可以看到hello world说明刚才在app.jsx用react语法写的“hello world”编译成功了


react雕刻网站——开发环境配置(2)_第24张图片


react雕刻网站——开发环境配置(2)_第25张图片
编译成功

|——安装css插件css-loader

安装命令

 yarn add [email protected] [email protected] --dev


配置webpack.config.js,在rules添加一个处理css的对象

module: {

        rules: [

            {

                test: /\.m?jsx$/,

                exclude: /(node_modules)/,

                use: {

                    loader: 'babel-loader',

                    options: {

                        presets: ['env','react']                    }                }            },

// css文件处理            {                test:

/\.css$/i,

                use: ['style-loader', 'css-loader'],

            },

        ]

    },

新建一个文件app.css,在里面写一些样式

第三步:然后在app.jsx引入样式

import './app.css'

打包node_modules/.bin/webpack之后打开dist/index.html看看样式有没有发生改变


react雕刻网站——开发环境配置(2)_第26张图片
写入样式


react雕刻网站——开发环境配置(2)_第27张图片
编译成功

|——安装extract-text-webpack-plugin插件

它将*.css条目块中的所有必需模块移动到单独的CSS文件中。因此,样式不再内联到JS包中,而是在单独的CSS文件中(styles.css)

第一步:安装插件

安装命令:

 yarn add [email protected] --dev


第二步:配置webpack.config.js

const path = require('path');

const HtmlWebpackPlugin = require('html-webpack-plugin')

c

onst ExtractTextPlugin = require('extract-text-webpack-pluginmodule.exports = {    entry: './src/app.jsx',//    output: {        path: path.resolve(__dirname, 'dist'),

        filename: 'app.js'    },

    module: {

        rules: [

            {

                test: /\.m?jsx$/,

                exclude: /(node_modules)/,

                use: {

                    loader: 'babel-loader',

                    options: {

                        presets: ['env','react']

                    }

                }

            },

            {

                test: /\.css$/i,

                use: ExtractTextPlugin.extract({

                    fallback: "style-loader",

                    use: "css-loader"                })

            },

        ]

    },

    plugins: [

        new HtmlWebpackPlugin({

            template: './src/index.html'}),

newExtractTextPlugin("index.css"),

] };


|——安装sass-loader插件

第一步:安装

安装命令:

yarn add [email protected] --dev

第二步:配置webpack.config.js

const path              = require('path');const HtmlWebpackPlugin = require('html-webpack-plugin');

const ExtractTextPlugin = require('extract-text-webpack-plugin');

module.exports = {

    entry: './src/app.jsx',    output: {

        path: path.resolve(__dirname, 'dist'),

        filename: 'app.js'    },

    module: {

        rules: [

            {

                test: /\.jsx$/,

                exclude: /(node_modules)/,

                use: {

                    loader: 'babel-loader',

                    options: {

                        presets: ['env', 'react']

                    }

                }

            },            {

                test: /\.css$/,

                use: ExtractTextPlugin.extract({

                    fallback: "style-loader",

                    use: "css-loader"                })

            },

            // sass文件的处理            {

                test: /\.scss$/,

                use: ExtractTextPlugin.extract({

                    fallback: 'style-loader',

                    use: ['css-loader', 'sass-loader']

                })

            }

        ]

    },

    plugins: [new HtmlWebpackPlugin({

            template: './src/index.html'        }),newExtractTextPlugin("css/[name].css"),

    ]

};

第三步:新建一个index.scss文件

写一些scss的语法

第四步:在app.jsx引入

import React from 'react';

import ReactDOM from 'react-dom';

import './app.css'import './index.scss' //引入scss文件ReactDOM.render(

hello,world

,    document.getElementById('app')

)

第四步:用打包命令执行打包

如果出现:Cannot find module 'node-sass'

安装一下node-sass

yarn add node-sass --seve-dev

然后继续打包

查看index.html样式的改变


|——安装url-loader,对图片对处理

安装命令

yarn add [email protected] [email protected] --dev


第二步:配置webpack.confog.js

const path              = require('path');const HtmlWebpackPlugin = require('html-webpack-plugin');

const ExtractTextPlugin = require('extract-text-webpack-plugin');

module.exports = {

    entry: './src/app.jsx',    output: {

        path: path.resolve(__dirname, 'dist'),

        filename: 'app.js'    },

    module: {

        rules: [

            {

                test: /\.jsx$/,

                exclude: /(node_modules)/,

                use: {

                    loader: 'babel-loader',

                    options: {

                        presets: ['env', 'react']

                    }

                }

            },            {

                test: /\.css$/,

                use: ExtractTextPlugin.extract({

                    fallback: "style-loader",

                    use: "css-loader"                })

            },            {

                test: /\.scss$/,

                use: ExtractTextPlugin.extract({

                    fallback: 'style-loader',

                    use: ['css-loader', 'sass-loader']

                })

            },

            //图片对配置            {

                test: /\.(png|jpg|gif)$/i,

                use: [

                    {

                        loader: 'url-loader',

                        options: {

                            limit: 8192,

                        },

                    },

                ],

            },

        ]

    },

    plugins: [new HtmlWebpackPlugin({

            template: './src/index.html'        }),newExtractTextPlugin("css/[name].css"),

    ]

};

第三步:放一张图片,然后引入

第四步:打包命令打包,看到dist文件多了一张重命名后的img

|——安装webpack-dev-serve

第一步:安装命令

 yarn add [email protected] --dev

第二步:配置webpack.config.js

const path              = require('path');

const webpack          = require('webpack');

const HtmlWebpackPlugin = require('html-webpack-plugin');

const ExtractTextPlugin = require('extract-text-webpack-plugin');

module.exports = {

    entry: './src/app.jsx',//入口    output: {

        path: path.resolve(__dirname, 'dist'),

        //+++publicPath: '/dist/',

        filename: 'js/app.js'    },

    module: {

        rules: [

            {

                test: /\.jsx$/,

                exclude: /(node_modules)/,

                use: {

                    loader: 'babel-loader',

                    options: {

                        presets: ['env', 'react']

                    }

                }

            },

            // css文件的处理            {

                test: /\.css$/,

                use: ExtractTextPlugin.extract({

                    fallback: "style-loader",

                    use: "css-loader"                })

            },

            // sass文件的处理            {

                test: /\.scss$/,

                use: ExtractTextPlugin.extract({

                    fallback: 'style-loader',

                    use: ['css-loader', 'sass-loader']

                })

            },

            //图片配置            {

                test: /\.(png|jpg|gif)$/i,

                use: [

                    {

                        loader: 'url-loader',

                        options: {

                            limit: 8192,

                            name: 'resource/[name].[ext]'                        },

                    },

                ],

            },

            // 字体图标的配置            {

                test: /\.(eot|svg|ttf|woff|woff2|otf)$/,

                use: [

                    {

                        loader: 'url-loader',

                        options: {

                            name: 'resource/[name].[ext]'// publicPath:'/fonts/',//打包到fonts文件夹// useRelativePath:true,//设置为相对路径// name:'[name].[ext]'                        }

                    }

                ]

            }

        ]

    },

    plugins: [

        //处理html文件new HtmlWebpackPlugin({

            template: './src/index.html'        }),

        // 独立css文件newExtractTextPlugin("css/[name].css"),

        //提出公共模块new webpack.optimize.CommonsChunkPlugin({

            name : 'common',

            filename: 'js/base.js'        })

    ],

    devServer: {

        //contentBase: './dist'

//修改端口号

      port: 8086

    },

};

执行命令

node_modules/.bin/webpack-dev-server

react雕刻网站——开发环境配置(2)_第28张图片
运行成功
react雕刻网站——开发环境配置(2)_第29张图片
这是个开心的结局,配置完成

完整的webpack.config.js

const path              = require('path');

const HtmlWebpackPlugin = require('html-webpack-plugin');

const ExtractTextPlugin = require('extract-text-webpack-plugin');

module.exports = {

    entry: './src/app.jsx',

    output: {

        path: path.resolve(__dirname, 'dist'),

        filename: 'app.js'

    },

    module: {

        rules: [

            {

                test: /\.jsx$/,

                exclude: /(node_modules)/,

                use: {

                    loader: 'babel-loader',

                    options: {

                        presets: ['env', 'react']

                    }

                }

            },

            {

                test: /\.css$/,

                use: ExtractTextPlugin.extract({

                    fallback: "style-loader",

                    use: "css-loader"

                })

            },

            // sass文件的处理

            // {

            //     test: /\.scss$/,

            //     use: ExtractTextPlugin.extract({

            //         fallback: 'style-loader',node_

            //         use: ['css-loader', 'sass-loader']

            //     })

            // }

        ]

    },

    plugins: [

        new HtmlWebpackPlugin({

            template: './src/index.html'

        }),

        new ExtractTextPlugin("css/[name].css"),

    ],

    devServer: {

        contentBase:'./dist'

    }

};

你可能感兴趣的:(react雕刻网站——开发环境配置(2))