Webpack 2解析别名

时间:2017-03-07 02:42:18

标签: import webpack alias resolve

我在解决webpack 2中的别名方面有一点问题。无论我做什么,我都无法解决这个问题。以下是相关代码:

/* webpack.mix.js */

       mix.webpackConfig({
         module: {
               rules: [
                   {
                       test: /\.js$/,
                       loader: 'eslint-loader'
                   }
               ]
           },
           resolve: {
             root: path.resolve(__dirname), 
                    // path is reqired at the beggining of file 
             alias: {
               config: 'src/assets/js/config', // this is a config folder
               js: 'src/assets/js'
             }
           }
       });

/* router.js */ 

        import { DashboardRoute } from 'config/route-components'
      // this import is unresolved

3 个答案:

答案 0 :(得分:3)

webpack 2中不再存在resolve.root选项,而是将其合并到resolve.modules(来自官方Migration Guide)。 Webpack甚至会抛出一个错误,表明它不是一个有效的属性。如果您希望能够从根目录导入,则可以将解析配置更改为:

resolve: {
  alias: {
    config: 'src/assets/js/config',
    js: 'src/assets/js'
  },
  modules: [
    path.resolve(__dirname),
    'node_modules'
  ]
}

或者,您可以在resolve.alias中使用绝对路径,如下所示:

resolve: {
  alias: {
    config: path.resolve(__dirname, 'src/assets/js/config'),
    js: path.resolve(__dirname, 'src/assets/js')
  }
}

答案 1 :(得分:1)

试试这个:

SocketServer

答案 2 :(得分:0)

在离子3(版本3.13.3)中,为了使别名映射有效,您必须在webpack.config.js和{}中定义路径映射。 tsconfig.json

请在此处参阅完整答案question here