Webpack:无法访问我导入的模块

时间:2016-12-21 13:30:16

标签: javascript node.js import webpack

问题:

  1. 我在我的条目文件中导入.js模块。
  2. 它包含在bundle.js。
  3. 它仍未定义,无法弄清楚原因。
  4. 我的webpack配置文件:

    module.exports = {
      entry: {
        // Entry points for pages:
        signup: './signup.js',
        activate: './activate.js'
      },
      output: {
        path: __dirname + '/build',
        filename: '[name].page.bundle.js',
      },
      module: {
        loaders: [
          {
            test: /\.js$/,
            loader: 'babel',
            exclude: /node_modules/,
          },
          {
            test: /\.json$/,
            loader: 'json',
          },
          {
            test: /\.vue$/,
            loader: 'vue',
          }
        ],
      },
      vue: {
        loaders: {
          js: 'babel',
        }
      },
      resolve: {
      alias: {vue: 'vue/dist/vue.js'}
      },
    };
    

    Signup.js:

    import Vue from 'vue';
    import _ from 'lodash';
    import axios from 'axios';
    
    import Signup from './vue-components/page-signup-form.vue';
    
    import UrlFunctions from './js/urlFunctions';
    
    
    if (typeof UrlFunctions === "undefined") {
      console.log("Still not reachable!");
    }
    

    输出:"仍然无法访问"

    • Lodash和axios按预期工作。
    • Vue + Vue组件有效。
    • UrlFunctions模块似乎已导入bundle.js,但它表示未声明。

    摘自bundle.js:

    ...
    var UrlFunctions = exports.UrlFunctions = {
    ...
    

    在模块文件中,它已正确导出。

    我没有任何线索。

    我创建了一个文件,如:

    // sg.js
    export var sg = "something";
    

    我尝试在我的输入文件中导入signup.js,这也没有被声明! ...

    NPM-DEPS:

    "devDependencies": {
      "babel-core": "^6.20.0",
      "babel-loader": "^6.2.9",
      "babel-plugin-transform-runtime": "^6.15.0",
      "babel-preset-es2015": "^6.18.0",
      "babel-runtime": "^6.20.0",
      "css-loader": "^0.26.1",
      "json-loader": "^0.5.4",
      "script-loader": "^0.7.0",
      "vue-loader": "^10.0.2",
      "vue-template-compiler": "^2.1.6",
      "webpack": "^1.14.0"
    },
      "dependencies": {
      "axios": "^0.15.3",
      "lodash": "^4.17.2",
      "vue": "^2.1.6"
    }
    

1 个答案:

答案 0 :(得分:0)

出于某种原因,似乎导出模块:

export myModule; // nOK

export { myModule }; // nOK

export default myModule; // OK!

module.exports = myModule; // OK!

  • 我尝试从我导入模块中添加include Babel文件夹:没有帮助。
  • 完全重新安装节点和npm,切换到Webpack 2:不是问题。

如果您对此有任何见解,欢迎您。