1
我正準備在Heroku上放置一個小反應應用程序,並且正在進行生產配置。當我運行npm run build
所有的作品。然而,當我運行內置文件node dist/dist.js
我收到錯誤:爲什麼'文檔'在webpack構建上沒有定義錯誤?
ReferenceError: document is not defined
我應該使用不同的CSS加載器? 我webpack.deployment.config.js如下:
const path = require('path');
const webpack = require('webpack');
module.exports = {
devtool: 'source-map',
entry: [
'./client/index.js'
],
output: {
path: path.join(__dirname, 'dist'),
filename: 'bundle.js',
publicPath: './dist/'
},
plugins: [
new webpack.optimize.UglifyJsPlugin({
minimize: true,
compress: {
warnings: false
},
sourceMap: true
})
],
module: {
loaders: [{
test: /.jsx?$/,
loader: 'babel-loader',
include: path.join(__dirname, 'client'),
exclude: /node_modules/,
query: {
presets: ['es2015', 'react']
}
},
{ test: /\.css$/, loader: "css-loader" },
{ test: /\.(jpg|png|svg)$/, use: 'file-loader'}
]
},
};
你的javascript代碼中的某些內容正試圖訪問全局變量'document',它只能在瀏覽器上使用。解決方法是不要在nodejs中執行該代碼,但如果沒有看到該代碼就很難提供幫助。 –
這對我有意義。在此之前,我在使用{test:/\.css$/,loader:「style-loader!css-loader」}時未定義發佈窗口。我想完成構建並部署它使其具有瀏覽器更有意義。謝謝。 –
Webpack是有用的,但垃圾和混亂。在本地開發中,你可以使用'style-loader',它實際上可以將你的css轉換爲javascript,並在頁面中動態注入一個css標籤,並將字符串css內容放在那裏(這可以讓你重新加載)。在生產版本(你應該爲此創建一個新的webpack配置文件) - 你使用ExtractTextPlugin和* not * style-loader,只是css-loader,將css拖放到實際的單獨文件中 –