我对webpack非常陌生,我发现在生产构建中,我们可以减少总体代码的大小.

  1. 这些文件仍然很重(与开发版本相同)
  2. 如何使用这些文件?目前我正在使用webpack dev server

包裹json文件

{
  "name": "MyAPP",
  "version": "0.1.0",
  "description": "",
  "main": "src/server/server.js",
  "repository": {
    "type": "git",
    "url": ""
  },
  "keywords": [
  ],
  "author": "Iam",
  "license": "MIT",
  "homepage": "http://example.com",
  "scripts": {
    "test": "",
    "start": "babel-node src/server/bin/server",
    "build": "rimraf dist && NODE_ENV=production webpack --config ./网页包.生产配置.js --progress --profile --colors"
  },
  "dependencies": {
    "scripts" : "", ...
  },
  "devDependencies": {
    "scripts" : "", ...
  }
}

网页包.配置.js

var path = require('path');
var webpack = require('webpack');
var HtmlWebpackPlugin = require('html-webpack-plugin');
var public_dir = "src/frontend";
var ModernizrWebpackPlugin = require('modernizr-webpack-plugin');

module.exports = {
  devtool: 'eval-source-map',
  entry: [
    'webpack-hot-middleware/client?reload=true',
    path.join(__dirname, public_dir , 'main.js')
  ],
  output: {
    path: path.join(__dirname, '/dist/'),
    filename: '[name].js',
    publicPath: '/'
  },
  plugins: [
    plugins
  ],
  module: {
    loaders: [loaders]
  }
};

网页包.生产配置.js

var path = require('path');
var webpack = require('webpack');
var HtmlWebpackPlugin = require('html-webpack-plugin');
var public_dir = "src/frontend";
var ModernizrWebpackPlugin = require('modernizr-webpack-plugin');
console.log(path.join(__dirname, 'src/frontend' , 'index.html'));

module.exports = {
  devtool: 'eval-source-map',
  entry: [
    'webpack-hot-middleware/client?reload=true',
    path.join(__dirname, 'src/frontend' , 'main.js')
  ],
  output: {
    path: path.join(__dirname, '/dist/'),
    filename: '[name].js',
    publicPath: '/'
  },
  plugins: [plugins],
  resolve: {
    root: [path.resolve('./src/frontend/utils'), path.resolve('./src/frontend')],
    extensions: ['', '.js', '.css']
  },

  module: {
    loaders: [loaders]
  }
};

推荐答案

在观察了很多观众对这个问题的看法后,我决定总结一下维克拉马蒂亚和桑德普的回答.

要构建生产代码,您首先要创建的是带有优化包的生产配置,

  new webpack.optimize.CommonsChunkPlugin('common.js'),
  new webpack.optimize.DedupePlugin(),
  new webpack.optimize.UglifyJsPlugin(),
  new webpack.optimize.AggressiveMergingPlugin()

然后在包裹里.json文件您可以使用此生产配置配置构建过程

"scripts": {
    "build": "NODE_ENV=production webpack --config ./webpack.production.config.js"
},

现在,您必须运行以下命令来启动构建

npm run build

根据我的生产构建配置,webpack将构建源代码到./dist目录.

现在,您的UI代码将在./dist/目录中可用.将服务器配置为将这些文件作为静态assets资源 提供服务.完成!

Node.js相关问答推荐

需要关于基于角色授权的设计建议

如何解决TypeError:requ.isAuthenticated不是函数错误?

Node-Red Tasmota 错误:连接 ECONNREFUSED 192.168.77.21:1883

为什么我的过滤器无法在我在下面编写的 Google Analytics 4 应用程序脚本代码中工作?我该如何修复它?

bcrypt.compare 每次都返回 false

我如何在 Raku 的供应中注册不同的事件?

ResponseError:键空间ks1不存在

在 nodejs 中使用 multer 上传文件返回未定义的 req.file 和空的 req.body

无法关闭 node.js 中的mongoose 连接

React Native:执行 com.android.build.gradle.internal.tasks.Workers$ActionFacade 时发生故障

如何解决这个关于 TaskRunner 的 Node/Express 代码问题?

如何从名字,中间名,姓氏中获取全名并在结果中搜索匹配?

在 Javascript 逻辑中访问 EJS 变量

从 Node.js 应用程序查询 Heroku 托管的 Postgres 数据库时出现自签名证书错误

chart.js 无法创建图表:无法从给定项目获取上下文

node.js 在控制台上显示未定义

处理快速异步中间件中的错误

Heroku + Node:找不到模块错误

`return function *(){...}` 是什么意思?

node.js 服务器和 HTTP/2 (2.0) 与 express.js