我可以在Google Chrome的“来源”标签上看到我的整个反应应用(具有相同的目录和文件名)。
为什么会这样?
我在开发和制作中都试过这个:
在开发中:
db.LoadSelect<Users>(x => x.Id == 1);
PROD:
npm start
我可以看到整个架构和文件,路由/渲染逻辑。
我做错了什么,或者可能解释一下反应服务器如何返回。
答案 0 :(得分:0)
我首先检查以确保您实际构建生产版本。
"build": "NODE_ENV=production webpack -p;",
我看到webpack没有错误,但事实上并没有缩小它。
此外,您需要uglify()您的生产版本,以便将所有代码缩小到只能读取的计算机,以便获得&#34;蓝色生产版本&#34;如果有人在chrome中使用react开发工具,那么就会反应logo,这是我认为你想做的事情。
https://webpack.js.org/plugins/uglifyjs-webpack-plugin/
以下是我使用的webpack配置示例。显然,你不需要这些东西。
'use strict';
require('dotenv').config({ path: `${__dirname}/src/.dev.env` });
const production = process.env.NODE_ENV === 'production';
const { DefinePlugin, EnvironmentPlugin } = require('webpack');
const HtmlPlugin = require('html-webpack-plugin');
const CleanPlugin = require('clean-webpack-plugin');
const UglifyPlugin = require('uglifyjs-webpack-plugin');
const ExtractPlugin = require('extract-text-webpack-plugin');
let plugins = [
new EnvironmentPlugin(['NODE_ENV']),
new ExtractPlugin('bundle-[hash].css'),
new HtmlPlugin({ template: `${__dirname}/src/index.html` }),
new DefinePlugin({
__DEBUG__: JSON.stringify(!production),
__API_URL__: JSON.stringify(process.env.API_URL),
__GOOGLE_CLIENT_ID__: JSON.stringify(process.env.GOOGLE_CLIENT_ID),
__AWS_ACCESS_KEY_ID__: JSON.stringify(process.env.AWS_ACCESS_KEY_ID),
__AWS_SECRET_ACCESS_KEY__: JSON.stringify(process.env.AWS_SECRET_ACCESS_KEY),
}),
];
if(production) {
plugins = plugins.concat([new CleanPlugin(), new UglifyPlugin()]);
}
module.exports = {
plugins,
entry: `${__dirname}/src/main.js`,
devServer: {
historyApiFallback: true,
},
devtool: production ? undefined : 'eval',
output: {
path: `${__dirname}/build`,
filename: 'bundle-[hash].js',
publicPath: process.env.CDN_URL,
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel-loader',
},
{
test: /\.scss$/,
loader: ExtractPlugin.extract(['css-loader', 'sass-loader']),
},
{
test: /\.(woff|woff2|ttf|eot|glyph|\.svg)$/,
use: [
{
loader: 'url-loader',
options: {
limit: 10000,
name: 'font/[name].[ext]',
},
},
],
},
{
test: /\.(jpg|jpeg|gif|png|tiff|svg)$/,
exclude: /\.glyph.svg/,
use: [
{
loader: 'url-loader',
options: {
limit: 6000,
name: 'image/[name].[ext]',
},
},
],
},
{
test: /\.(mp3|aac|aiff|wav|flac|m4a|mp4|ogg)$/,
exclude: /\.glyph.svg/,
use: [
{
loader: 'file-loader',
options: { name: 'audio/[name].[ext]' },
},
],
},
],
},
};