0

这是我的 webpack 配置文件的一部分:`

// webpack.config.js  
  entry: path.resolve(__dirname, 'src/app.js'),
  output: {
    filename: 'bundle.js',
    path: path.resolve(__dirname, 'dist/js/'),
    library: 'app',
    publicPath: '/js/',
    pathinfo: NODE_ENV === 'development',
  },
  //...
    module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /(node_modules|bower_components)/,
        use: [
          {
            loader: 'babel',
          },
          {
            loader: 'eslint',
          },
        ],
      },    
      //...    
    ],
  },
  
  
 // .babelrc
 {
  "presets": [
    [
      "env",
      {
        "targets": {
          "browsers": [
            "last 1 Chrome versions",
            "last 1 Firefox versions",
            "last 1 Edge versions",
            "last 1 iOS versions"
          ]
        },
        "modules": false
      }
    ]
  ],
  "plugins": [
    ["istanbul", {
      "exclude": [
        "./test/unit/**/*.js"
      ]
    }]
  ]
}

问题:我得到了我的 js 文件的完整本地路径,如下所示 path: '/Users/username/MyProjects/projectname/src/view/dialog/Messages.js:不喜欢在我的生产包中包含。

我只使用 babel-loader 获取js文件。

我使用“webpack”:“3.8.1”。

请帮忙!

4

2 回答 2

1

问题解决了。原因是伊斯坦布尔通天塔插件。解决方案是使用“测试”变量并仅在测试模式下使用伊斯坦布尔:

// .babelrc

{
  "presets": [
    [
     // ...
  ],
  "env": {
    "test": {
      "plugins": [
        ["istanbul", {
          "exclude": [
            "./test/unit/**/*.js"
          ]
        }]
      ]
    }
  }
}

于 2017-11-14T10:16:02.237 回答
-1

这可能会有所帮助。

const path = require('path');
path.join(process.cwd()

ex: 
"rxjs/AsyncSubject": path.join(process.cwd(), "/node_modules/rxjs/_esm5/AsyncSubject.js")
于 2017-11-13T15:46:39.407 回答