Cannot find module error when using karma-webpack

匿名 (未验证) 提交于 2019-12-03 01:05:01

问题:

I have the following karma.conf.js file, I also have a test file called example.spec.js that lives inside app/compontents/example/example.spec.js I am trying to import my Example.js file

import Example from 'app/components/Example/Example.jsx';  describe('Example Component', function() {  }); 

But I get the following error Error: Cannot find module "app/components/Example/Example.jsx" I have tried many different ideas, such as ./Example.jsx, ./Example, components/Example/Example.jsx but each time I get the same error.

var webpack = require('webpack');  module.exports = function(config) {  config.set({  // milliseconds browserNoActivityTimeout: 40000,  // frameworks to use // available frameworks: https://npmjs.org/browse/keyword/karma-adapter frameworks: ['mocha', 'chai'],   // list of files / patterns to load in the browser files: [   'app/tests/setup.js',   'app/**/*.spec.js' ],  // preprocess matching files before serving them to the browser // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor preprocessors: {   'app/tests/setup.js': ['webpack', 'sourcemap'],   'app/**/*.spec.js': ['webpack', 'sourcemap'] },   webpack: {   devtool: 'inline-source-map',   cache: false,   resolve: {     extensions: ['', '.js', '.jsx'],     modulesDirectories: ['node_modules', 'app'],     fallback: __dirname   },   module: {     preLoaders: [],     loaders: [       { test: /\.(js|jsx)$/, loaders: ['babel-loader'], exclude: /node_modules/ },     ],     plugins: [       new webpack.DefinePlugin({         'process.env.NODE_ENV': JSON.stringify('test')       })     ]   } },   webpackMiddleware: {   progress: false,   stats: false,   debug: false,   noInfo: true,   silent: true },   // test results reporter to use // possible values: 'dots', 'progress' // available reporters: https://npmjs.org/browse/keyword/karma-reporter reporters: ['dots'],   // web server port port: 9876,   // enable / disable colors in the output (reporters and logs) colors: true,   // level of logging // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG logLevel: config.LOG_INFO,   // enable / disable watching file and executing tests whenever any file changes autoWatch: false,   // start these browsers // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher browsers: ['PhantomJS'],   // Continuous Integration mode // if true, Karma captures browsers, runs the tests and exits singleRun: true,  plugins: [   'karma-mocha',   'karma-chai',   'karma-webpack',   'karma-sourcemap-loader',   'karma-phantomjs-launcher' ] }); }; 

回答1:

If you want to use an import like that, you'll need to set up a resolve.alias. Demo:

resolve: {     alias: {         app: path.join(__dirname, 'app')     } } 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!