如何用 webpack 打包 node

\u5982\u4f55\u7528 webpack \u6253\u5305 node

\u6309\u7167\u901a\u5e38\u7684\u505a\u6cd5, package.json\u4e2d\u7684dependencies\u90fd\u662f\u4f1a\u88ab\u9879\u76eerequire\u7684\u4f9d\u8d56, devDependencies\u90fd\u662f\u548c\u73af\u5883\u76f8\u5173\u7684\u4f9d\u8d56, \u5982\u679c\u4f60\u4e5f\u662f\u8fd9\u6837\u7684\u8bdd(\u6216\u8005\u4f60\u4e5f\u53ef\u4ee5\u6539\u6210\u8fd9\u6837), \u90a3\u4e48\u53ea\u9700\u8981:

var json = require('./package.json') // \u8fd9\u4e2a\u8def\u5f84\u89c6\u5f53\u524d\u7684\u8def\u5f84\u8fdb\u884c\u5bf9\u4e8e\u4fee\u6539
module.exports = {
entry: {
app: path.resolve(__dirname, 'app/index.jsx'),
// \u5c06 \u7b2c\u4e09\u65b9\u4f9d\u8d56 \u5355\u72ec\u6253\u5305
vendor: Object.keys(json.dependencies)
},
output: {
path: __dirname + "/build",
filename: "[name].[chunkhash:8].js",
publicPath: '/'
},

// ...\u7701\u7565\u82e5\u5e72\u884c...

plugins: [

// ...\u7701\u7565\u82e5\u5e72\u884c...

new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
filename: '[name].[chunkhash:8].js'
})
]
}

\u6309\u7167\u901a\u5e38\u7684\u505a\u6cd5, package.json\u4e2d\u7684dependencies\u90fd\u662f\u4f1a\u88ab\u9879\u76eerequire\u7684\u4f9d\u8d56, devDependencies\u90fd\u662f\u548c\u73af\u5883\u76f8\u5173\u7684\u4f9d\u8d56, \u5982\u679c\u81ea\u5df1\u4e5f\u662f\u8fd9\u6837\u7684\u8bdd(\u6216\u8005\u4e5f\u53ef\u4ee5\u6539\u6210\u8fd9\u6837), \u90a3\u4e48\u53ea\u9700\u8981:

var json = require('./package.json') // \u8fd9\u4e2a\u8def\u5f84\u89c6\u5f53\u524d\u7684\u8def\u5f84\u8fdb\u884c\u5bf9\u4e8e\u4fee\u6539
module.exports = {
entry: {
app: path.resolve(__dirname, 'app/index.jsx'),
// \u5c06 \u7b2c\u4e09\u65b9\u4f9d\u8d56 \u5355\u72ec\u6253\u5305
vendor: Object.keys(json.dependencies)
},
output: {
path: __dirname + "/build",
filename: "[name].[chunkhash:8].js",
publicPath: '/'
},

// ...\u7701\u7565\u82e5\u5e72\u884c...

plugins: [

// ...\u7701\u7565\u82e5\u5e72\u884c...

new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
filename: '[name].[chunkhash:8].js'
})
]
}

按照通常的做法, package.json中的dependencies都是会被项目require的依赖, devDependencies都是和环境相关的依赖, 如果你也是这样的话(或者你也可以改成这样), 那么只需要:

var json = require('./package.json') // 这个路径视当前的路径进行对于修改
module.exports = {
entry: {
app: path.resolve(__dirname, 'app/index.jsx'),
// 将 第三方依赖 单独打包
vendor: Object.keys(json.dependencies)
},
output: {
path: __dirname + "/build",
filename: "[name].[chunkhash:8].js",
publicPath: '/'
},

// ...省略若干行...

plugins: [

// ...省略若干行...

new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
filename: '[name].[chunkhash:8].js'
})
]
}

扩展阅读:webpack打包流程 面试 ... webp转换jpg ... webpack 面试题 ... webpack打包教程 ... 对于webpack的理解 ... webpack教程阮一峰 ... webpack打包原理 面试 ... webpack 配置 ... webpack 是如何实现打包的 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网