2016-01-24 27 views
2

我有一個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 } 

server.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){ 

// ... 
+0

你能告訴我們建立的文件嗎? – Bergi

+0

好的,我將它們添加到帖子中。 – seven11

+0

如果我是正確的,你正在使用_browserify_,但是你想使用Node.js中的代碼,它應該可能工作,但我認爲你走錯了方向,你只需要建立你的源代碼使用babel,不是模塊加載器,babel會將您的ES6模塊語法轉換爲Node的'require's,一切都會好起來的。 –

回答

0

在server.js你應該導入從app/src/main.js

import { rnd } from 'main' 

使用babelify編寫代碼一樣您擁有您所有環境中的ES2015功能(但最好檢查兼容性時間表)