webpack包装node
本編のインストール依存は全部cnpmを使用します.
インストール依存 webpack.co.nfig.js を新設します.次の内容を書き込みます. は包装作業を行い、エンジニアリングルートディレクトリ(package.jsonのディレクトリ)は、 の命令を実行します.
暗号化コードは、webpackがes 6 をサポートするためにBabelをインストールします. webpack.co.nfig.js を修正する.
ディレクトリを削除
インストール依存
cnpm install --save-dev webpack
cnpm install -g webpack
パッキング操作を実行します const path = require('path')
const fs = require('fs')
const nodeModules = {}
fs.readdirSync('node_modules')
.filter(function (x) {
return [ '.bin' ].indexOf(x) === -1
})
.forEach(function (mod) {
nodeModules[ mod ] = 'commonjs ' + mod
})
module.exports = {
entry: './src/app.js',
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist')
},
target: 'node',
externals: nodeModules
}
webpack
またはwebpack–config webpack.co-nfig.js 暗号化コード
cnpm install --save-dev babel-loader babel-core babel-preset-env
const path = require('path')
const fs = require('fs')
const webpack = require('webpack');
const nodeModules = {}
fs.readdirSync('node_modules')
.filter(function (x) {
return [ '.bin' ].indexOf(x) === -1
})
.forEach(function (mod) {
nodeModules[ mod ] = 'commonjs ' + mod
})
module.exports = {
entry: './src/app.js',
output: {
filename: 'app.js',
path: path.resolve(__dirname, 'dist')
},
target: 'node',
externals: nodeModules,
plugins: [
new webpack.optimize.UglifyJsPlugin({
minimize: true,
sourceMap: false,
compress: {
warnings: false,
sequences: true,
dead_code: true,
conditionals: true,
booleans: true,
unused: true,
if_return: true,
join_vars: true,
drop_console: false
}
})
],
resolve: {
extensions: ['.js', '.json'],
modules: [path.join(__dirname, 'src'), 'node_modules']
},
module: {
rules: [
{ test: /\.js$/, exclude: /node_modules/, loader: "babel-loader" }
]
}
}
静的リソースをコピーcnpm i -S copy-webpack-plugin
使用方法参照:https://github.com/kevlened/copy-webpack-plugin ディレクトリを削除
cnpm i -S clean-webpack-plugin
使用方法参照:https://github.com/johnagan/clean-webpack-plugin