首先理解wepack的打包原理:一般单页面应用,你的页面都会引入一个类似bundle.js的文件,在react项目中,你会发现index.html中并没有引入css,那么css哪里去了?答案是它被打包到bundle.js文件中了。那么你可以去看下webpack.config.js入口文件entry配置项的地址(我们假设是./index.js),那么你会发现文件内容有个类似import ‘./index.less’的语句。所以你的css都是被打包到了js中。

那么下面让我们一起学习下如何使用webpack;

webpack.config.js 配置文件内module.exports = {

   entry: {
      bundle: "./src/index.js", // 入口地址
   },
   output: {
      path: __dirname + '/bundle', // 出口地址
      filename: '[name].js', // 导出文件名
   },
   module: {
      rules: [
         {test:/\.(js|jsx)$/, use: [{ // js/jsx文件解析loader
             loader: 'babel-loader',
             options:{presets:['react','es2015']}},
         ]},
         {test: /\.less$/, use:['style-loader', 'css-loader', 'less-loader']}, //less 文件解析loader
      ],
   },
         devServer: {
contentBase: "./",
inline: true,
port: 8888,
},
}

  依赖如下:

{
  "name": "wepack",
  "version": "1.0.0",
  "description": "",
  "main": "webpack.config.js",
  "scripts": {
    "start": "webpack-dev-server --hot --inline",
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "webpack"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "babel": "^6.23.0",
    "babel-core": "^6.26.3",
    "babel-loader": "^7.1.4",
    "babel-preset-es2015": "^6.24.1",
    "babel-preset-react": "^6.24.1",
    "css-loader": "^0.28.11",
    "less": "^3.0.4",
    "less-loader": "^4.1.0",
    "style-loader": "^0.21.0",
    "ts-loader": "^4.3.0",
    "typescript": "^2.8.3",
    "webpack": "^3.0.0",
    "webpack-cli": "^2.1.3",
    "webpack-dev-server": "^2.9.1"
  },
  "dependencies": {}
}