我可以使用webpack捆绑Next.js自定义服务器吗?



当您使用Next.js实现自定义服务器时,它不会绑定在生产构建中。我的问题是(在我尝试之前),可以使用自定义webpack配置来捆绑它吗?

我想这样做的原因是我不想在生产构建中发布代码。

编辑:我正在使用Next.js 7.0.2和Webpack 4.20.2。所以这是定制webpack配置的正确链接

好的,所以经过实验,它证明你可以添加另一个条目到现有的Next.js webpack配置,但由于自定义服务器需要不同的设置,它实际上是更好的单独做。我现在有了一个build-server脚本,它将自定义服务器绑定到一个名为.server的文件夹中。我还在Next.js的webpack配置中添加了混淆。

这是我的next-config.js:

const withCSS = require('@zeit/next-css')
const WebpackObfuscator = require('webpack-obfuscator')
module.exports = withCSS({
poweredByHeader: false,
webpack: (config, { buildId, dev, isServer, defaultLoaders, webpack }) => {
if (process.env.NODE_ENV === 'production') {
// Extend default config with obfuscation
config.plugins.push(
new WebpackObfuscator ({
rotateStringArray: true
})
)
}
// Important: return the modified config
return config
}
})

这是我的webpack.config.server.js:

const path = require('path')
const nodeExternals = require('webpack-node-externals')
const WebpackObfuscator = require('webpack-obfuscator')
// Config to build Express server and associated server-side code bundle
module.exports = {
mode: 'production',
target: 'node',
entry: './server/server.js',
externals: [nodeExternals()], // Ignore node_modules
output: {
path: path.resolve(__dirname, '.server'),
filename: 'server.bundle.js',
},
plugins: [
// Obfuscate the code
new WebpackObfuscator ({
rotateStringArray: true
})
]
}

build-server脚本为:

"build-server": "webpack --config ./webpack.config.server.js"

最新更新