2016-02-23 2 views
2

Ясно, что я пропустил что-то невероятно простое, поэтому заранее извиняюсь за немой вопрос. У меня нет ошибок, поэтому Google трудно.ES6 Экспорт с Babel

Я пытаюсь экспортировать что-то, что угодно, из пакета npm, написанного на ES6, скомпилированного с помощью babel и webpack.

Я следил за этим http://jamesknelson.com/using-es6-in-the-browser-with-babel-6-and-webpack/ для настройки моего webpack, оставив его в основном идентичным, но найти его ниже для справки. Я сделал тестовое экспортное репо, чтобы убедиться, что это не что-то в коде модуля, который я пытался экспортировать; найти это ниже. Любая помощь была бы весьма признательна; на данный момент я чувствую, что я беру сумасшедшие таблетки.

src/index.js

const test = "test"; 

export default test; 

webpack.config.js

var path = require("path"); 
var webpack = require("webpack"); 

module.exports = { 
    entry: [ 
    "babel-polyfill", 
    "./src/index" 
    ], 

    output: { 
    //path: path.join(__dirname, "lib"), 
    //filename: "[name].js" 
    filename: "./lib/index.js" 
    }, 

    // import bare, .js, and .jsx files 
    resolve: { 
    extensions: ["", ".js", ".jsx"] 
    }, 

    devtool: "source-map", 

    module: { 
    loaders: [ 
     { 
     loader: "babel-loader", 

     // only load src 
     include: [ 
      path.resolve(__dirname, "src") 
     ], 

     // only compile .js and .jsx files 
     test: /\.jsx?$/, 

     query: { 
      plugins: ["transform-runtime", "transform-decorators-legacy"], 
      //plugins: ["transform-decorators-legacy"], 
      presets: ["es2015", "stage-0", "react"] 
     } 
     }, 
    ] 
    }, 
    debug: true 
}; 

package.json

{ 
    "name": "test-package", 
    "version": "0.0.1", 
    "description": "test", 
    "main": "lib/index.js", 
    "repository": { 
    "type": "git", 
    "url": "git+https://github.com/xxx/xxx.git" 
    }, 
    "scripts": { 
    "start": "webpack-dev-server" 
    }, 
    "keywords": [ 
    "es6" 
    ], 
    "author": "me", 
    "license": "MIT", 
    "bugs": { 
    "url": "https://github.com/xxx/xxx/issues" 
    }, 
    "homepage": "https://github.com/xxx/xxx#readme", 
    "dependencies": { 
    "babel-polyfill": "^6.5.0", 
    "babel-runtime": "^6.5.0" 
    }, 
    "devDependencies": { 
    "babel-core": "^6.5.2", 
    "babel-loader": "^6.2.3", 
    "babel-plugin-transform-decorators-legacy": "^1.3.4", 
    "babel-plugin-transform-runtime": "^6.5.2", 
    "babel-preset-es2015": "^6.5.0", 
    "babel-preset-react": "^6.5.0", 
    "babel-preset-stage-0": "^6.5.0", 
    "webpack": "^1.12.14", 
    "webpack-dev-server": "^1.14.1" 
    } 
} 

webpack -p


другой проект

npm i ../test-package

(проверьте действительно установлен, поиск "тест" в Lib/index.js и найти то, что должно быть экспорт)

import test from "test-package"; 

console.log(test); 
console.log(Object.keys(test)); 

выход: пустой объект , пустой массив

+1

Webpack, по умолчанию в любом случае, для пакетирования полноценных приложений. Похоже, вы скопируете сам модуль раньше времени, а затем попытаетесь загрузить этот пакет в другом модуле? Обычно ваш другой модуль будет ссылаться на несвязанные файлы, и вы бы связали это. Предполагая, что вам действительно нужно расслоение вообще. – loganfsmyth

+0

Хмм интересно. Я мог бы просто использовать babel, но afaik - это плохая практика опубликовать ES6 в NPM в это время, поэтому я, по крайней мере, должен это сделать. Я просто вычислил, что веб-пакет будет более надежным способом фактически сделать трансляцию на ES5. Чем больше я думаю об этом, тем больше мне нравится концепция; это облегчит для других возможность просматривать код «на лету» в папке «node_modules». – Californian

+0

Woooo не уверен, что случилось с продуктом webpack, но кто заботится, 'babel' сам по себе работал! Благодаря! Если вы ответите на свой вопрос, я отвечу/подтвержу его. : D – Californian

ответ

0

Почему бы не попробовать

import * as test from "test-package"; 

А потом

console.log(test); 
Смежные вопросы