• webpack在nodejs中应用(支持es6语法及热加载)


    安装
    npm i webpack webpack-cli @babel/core babel-loader @babel/preset-env @babel/node clean-webpack-plugin webpack-node-externals cross-env -D
    
    webpack.config.js
    const path = require('path')
    const webpackNodeExternals = require('webpack-node-externals')
    const { CleanWebpackPlugin } = require('clean-webpack-plugin')
    const webpackConfig = {
      target: 'node',
      mode: 'development',
      devtool: 'eval-source-map',
      entry: {
        server: path.join(__dirname, 'src/index.js')
      },
      output: {
        path: path.join(__dirname, './dist'),
        filename: '[name].bundle.js'
      },
      module: {
        rules: [
          {
            test: /.(js|jsx)$/,
            use: {
              loader: 'babel-loader'
            },
            exclude: [path.join(__dirname, 'node_modules')]
          }
        ]
      },
      externals: [webpackNodeExternals()],
      plugins: [new CleanWebpackPlugin()],
      node: {
        console: false,
        global: true,
        process: true,
        __filename: 'mock',
        __dirname: 'mock',
        Buffer: true,
        setImmediate: true,
        path: true
      }
    }
    
    module.exports = webpackConfig
    
    
    index.js
    import path from 'path'
    import Koa from 'koa'
    import koaBody from 'koa-body'
    import cors from '@koa/cors'
    import koaJson from 'koa-json'
    import helmet from 'koa-helmet'
    import koaStatic from 'koa-static'
    
    import router from './routes'
    
    const app = new Koa()
    
    
    app.use(koaStatic(path.join(__dirname, '../public')))
    app.use(helmet())
    app.use(koaBody())
    app.use(cors())
    app.use(koaJson())
    
    app.use(router())
    app.listen(9000)
    console.log(2432)
    
    
    .babelrc
    {
      "presets": [
        [
          "@babel/preset-env",
          {
            "targets": {
              "node": "current"
            }
          }
        ]
      ]
    }
    
    package.json
    {
      "name": "koa-learn",
      "version": "1.0.0",
      "description": "",
      "main": "index.js",
      "scripts": {
        "dev": "nodemon --exec babel-node src/index.js"
      },
      "repository": {
        "type": "git",
        "url": "git+https://github.com/raind33/test-git2.git"
      },
      "keywords": [],
      "author": "",
      "license": "ISC",
      "bugs": {
        "url": "https://github.com/raind33/test-git2/issues"
      },
      "homepage": "https://github.com/raind33/test-git2#readme",
      "dependencies": {
        "@koa/cors": "^3.0.0",
        "koa": "^2.11.0",
        "koa-body": "^4.1.1",
        "koa-combine-routers": "^4.0.2",
        "koa-helmet": "^5.2.0",
        "koa-json": "^2.0.2",
        "koa-router": "^7.4.0",
        "koa-static": "^5.0.0"
      },
      "devDependencies": {
        "@babel/core": "^7.7.4",
        "@babel/node": "^7.7.4",
        "@babel/preset-env": "^7.7.4",
        "babel-loader": "^8.0.6",
        "clean-webpack-plugin": "^3.0.0",
        "cross-env": "^6.0.3",
        "nodemon": "^2.0.1",
        "webpack": "^4.41.2",
        "webpack-cli": "^3.3.10",
        "webpack-node-externals": "^1.7.2"
      }
    }
    
    

    该项目github地址

  • 相关阅读:
    Hadoop的三大组件 内容
    常用的linux命令
    shell学习心得
    liunx学习心得。
    随机数
    HADOOP框架
    Shell学习心得
    linux学习心得
    jquery解决随机点餐系统重复问题
    在码云上git push时报错,出现error: failed to push some refs to 'https://gitee.com/lipengyangzuishuai/gitstudy.git'的解决办法
  • 原文地址:https://www.cnblogs.com/raind/p/11939388.html
Copyright © 2020-2023  润新知