需要从dist编译的ES6模块

时间:2016-06-04 08:29:15

标签: node.js ecmascript-6 babel

我有两个问题。

问题#1

我在ES6上编写了npm包,并且有以下package.json:

{
   "name": "mypackage",
   "bin": {
       "mybin": "dist/bin/mybin.js"
   },
   "dependencies": [...],
   "devDependencies": [...],
   "directories": {
       "lib": "dist"
   },
   "main": "dist/index.js",
   "scripts": {
       "compile": "./node_modules/.bin/babel ./src --optional runtime --presets es2015,stage-0 -d ./dist",
       "prepublish": "npm run compile"
   }
}

每次都成功编译。 但是,我可以包括:

var mypackage = require('mypackage');

但是我无法在子文件夹中包含相同的起始路径:

var constants = require('mypackage/core/constants');

当然constants.js有完整路径mypackage/dist/core/constants.js

但我想在没有dist部分的情况下加入它。 现在要包括常量我应该这样写:

var constants = require('mypackage/dist/core/constants'); 

这没有多大意义。

当我应该使用NODE_PATH解决此问题时,我不喜欢接近。 我需要解决方案,而不会让用户付出额外的努力来包含dist文件夹内容。 至少用户不应该依赖于编译/发布文件夹结构,他们甚至不应该对此有所了解。

问题#2

如何将所有.es6文件编译为dist,然后将除src之外的所有其他文件复制到dist? 例如,我有不同的模板,资产等。 我希望dist的结构完全相同,包括src中的所有文件,但编译为.es6的{​​{1}}。

我知道将整个.js复制到src然后编译从distdist的所有内容的明显解决方案,但它看起来并不像一个聪明的方式对我来说。

另一方面,我不想指定要复制到dist文件夹的每个资产/图片/模板。

可以使用gulp插件从文件夹到文件夹进行精确复制,但不包括具有给定扩展名(或正则表达式)的所有文件?

更新#1

@molda

我也有内部结构:

dist

因此,将所有静态文件保存在src / static中并不是解决方案

0 个答案:

没有答案