javascript - 导入的常量未定义

标签 javascript node.js ecmascript-6 browserify

我有一个server.js文件和 main.js编译的文件 watchify app/src/main.js --node -t babelify -o app/build/main.js & watchify app/src/server.js --node -t babelify -o app/build/server.js

main.js:

const rnd = 3

export { rnd }

服务器.js:

import { rnd } from '../build/main'

console.log(rnd)

import express from 'express'

let app = express()

app.listen(8080)

但它记录 undefined 。我做错了什么?

main.js 构建:

(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
var rnd = 3;

exports.rnd = rnd;

},{}]},{},[1]);

server.js 构建:

(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
"use strict";

(function e(t, n, r) {
  function s(o, u) {
    if (!n[o]) {
      if (!t[o]) {
        var a = typeof require == "function" && require;if (!u && a) return a(o, !0);if (i) return i(o, !0);var f = new Error("Cannot find module '" + o + "'");throw f.code = "MODULE_NOT_FOUND", f;
      }var l = n[o] = { exports: {} };t[o][0].call(l.exports, function (e) {
        var n = t[o][1][e];return s(n ? n : e);
      }, l, l.exports, e, t, n, r);
    }return n[o].exports;
  }var i = typeof require == "function" && require;for (var o = 0; o < r.length; o++) {
    s(r[o]);
  }return s;
})({ 1: [function (require, module, exports) {
    "use strict";

    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    var rnd = 3;

    exports.rnd = rnd;
  }, {}] }, {}, [1]);

},{}],2:[function(require,module,exports){
'use strict';

var _main = require('../build/main');

var _express = require('express');

var _express2 = _interopRequireDefault(_express);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

console.log(_main.rnd);

var app = (0, _express2.default)();

app.listen(8080);

},{"../build/main":1,"express":20}],3:[function(require,module,exports){

// ...

最佳答案

在 server.js 中,您应该从 app/src/main.js

导入
import { rnd } from 'main'

使用 babelify 编写代码,就像您的环境中拥有所有 ES2015 功能一样(但最好时常检查兼容性表)

关于javascript - 导入的常量未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34978727/

相关文章:

javascript - 默认对象属性

javascript - 无需推送即可将项目添加到数组中

php - 单击时将 PHP 变量从 div 标记传递给 jquery

javascript - 同一函数中的多个 dom 更新

javascript - 在 Gulp Karma 测试中设置调试选项

node.js - 将分离文件中的关联序列化

node.js - 如何使用sequelize重置autoIncrement主键?

javascript - 如何更改 Javascript 中的文本?

node.js - IBM Watson Conversation - 无法将 node.js 连接到 Watson 对话

tdd - React Native 中的单元测试触摸事件