1.项目根目录下建立个config文件夹。
2.config文件夹下建立个webpack.config.js配置脚本,内容如下:
var path = require("path");
var webpack = require("webpack");
var merge = require("webpack-merge");
var webpackConfig = require("@ionic/app-scripts/config/webpack.config");
const devConfig = {
  module: {
    loaders: [
      {
        test: /\.ts$/i,
        exclude: /node_modules/,
        loader: "ts-nameof-loader"
      }
    ]
  }
};
const prodConfig = {
  module: {
    loaders: [
      {
        test: /\.ts$/i,
        exclude: /node_modules/,
        loader: "ts-nameof-loader"
      }
    ]
  }
};
const customConfig = {
  dev: devConfig,
  prod: prodConfig
};
// Sometimes you may need to support multiple targets, webpack - merge
// will accept an object where each key represents the target configuration.
// The output becomes an array of configurations where matching keys are merged
// and non- matching keys are added.
let webpackMergedConfig = merge.multiple(customConfig, webpackConfig);
module.exports = {
  dev: webpackMergedConfig[0],
  prod: webpackMergedConfig[1]
};
3.为Ionic项目安装webpack-merge、ts-nameof、ts-nameof-loader包:
npm install webpack-merge ts-nameof ts-nameof-loader --save-dev
4.在package.json中设置自定义的webpack配置文件:
{
  //...
  "config": {
    "ionic_webpack": "config/webpack.config.js"
  },
  //...
}注意:
let webpackMergedConfig = merge.multiple(customConfig, webpackConfig);
这里customConfig必须在webpackConfig的前面。
目前的缺陷:
使用nameof之后,调试时ts的source-map会变成js,可读性变差。
如果在webpack.config.js里配置上enforce: “pre”。
可以让source-map正常,但是编译出的js却带有nameof,会导致无法运行或者报错。