从0搭建前端项目架构-webpack配置

栏目: JavaScript · 发布时间: 5年前

内容简介:7.为了每次打包方便,在package.json里的scripts下写一条build命令,以后打包只需要执行npm run build就行。打包后就会生成一个dist文件夹。js不需要babel不需要识别。11.由于需要识别babel,所以需要同时配置babel文件。这里安装指定的babel等包。在根目录下创建.babelrc文件
cd build
    touch webpack.config.client.js
复制代码

6.在webpack中配置项目打包的入口和出口文件。

  • entry代表打包的入口文件,这里就是指定到app.js
  • output代表打包后的出口文件。
    • filename:打包后的文件名,采用[name].[hash].js。[name]是项目的入口文件名,就是app,[hash]是hash串。采用hash写法,当项目中的代码改变了,会改变hash值,就会刷新浏览器的缓存。如果没有改动,就不会刷新缓存,达到使用缓存的效果。
    • path:最终打包到dist目录下
    • publicPath:这个配置是指定打包后的文件存放到指定的路径下,就是/public/[name].[hash].js。如果不指定,则是[name].[hash].js。可以作为静态文件和api的区分。
cont path = require('path')
    module.exports = {
        entry: {
            app: path.join(__dirname,'../client/app.js')
        },
        output: {
            filename: '[name].[hash].js',
            path: path.join(__dirname,'../dist'),
            publicPath: ''
        }
    }
复制代码

7.为了每次打包方便,在package.json里的scripts下写一条build命令,以后打包只需要执行npm run build就行。打包后就会生成一个dist文件夹。

"build:client": "webpack --config build/webpack.config.client.js"
复制代码

8.先写一个简单的react代码

  • 安装react-dom
npm install react react-dom -S
复制代码
  • 在App.jsx里面写一段react代码
import React from 'react';
  
  export default class App extends React.Component {
      render(){
          return (
              <div>this is app</div>
          )
      }
  }
复制代码
  • 在app.js里面引入App.jsx
import React from 'react';
  import ReactDom from 'react-dom';
  import App from './App.jsx';
  
  ReactDom.render(<App />,document.body)
复制代码

9.因为不能识别jsx代码,所以需要在webpack中配置使其能够识别jsx代码。

js不需要babel不需要识别。

...省略以上配置
   module: {
       rules: [
           {
               test: /.(jsx | js)$/,
               loader: 'babel-loader'
           },
           {
               test: /.js$/,
               loader: 'babel-loader',
               exclude: [
                   path.join(__dirname,'../node_modules')
               ]
           }
       ]
   }
复制代码

10.因为在webpack中使用了babel-loader,需要安装下,同时需要安装babel-core。

npm install babel-loader@^7.1.2 babel-core@^6.26.0 -D
复制代码

11.由于需要识别babel,所以需要同时配置babel文件。这里安装指定的babel等包。在根目录下创建.babelrc文件

  • 安装preset相关包
npm i babel-preset-es2015 babel-preset-es2015-loose babel-preset-react -D
复制代码
  • 在.babelrc文件中写配置
``
    {
        "presets": [
            ["es2015", {"loose":true}],
            "react"
        ]
    }
```
复制代码

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Google是如何控制世界的

Google是如何控制世界的

(美)丹尼尔·伊克比亚 / 李军 / 东方出版社 / 2008-08 / 36.00元

秘Google的发展之路! Google,这个有着数百亿的网页存储量、每天两亿搜索次数的搜索引擎,最初仅仅是一个方程式。这个由拉里·佩奇和塞吉·布林两位天才创造出的超级算法甚至比可口可乐的配方还要保密。 当广告公司为自己网页在搜索结果中的排序争得头破血流时,Google正悠然地坐收渔翁之利,这种天才的拍卖广告链接的商业模式给Google带来了令人瞠目结舌的企业利润!仅仅从1999~20......一起来看看 《Google是如何控制世界的》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具