我有两个问题。
问题#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
然后编译从dist
到dist
的所有内容的明显解决方案,但它看起来并不像一个聪明的方式对我来说。
另一方面,我不想指定要复制到dist
文件夹的每个资产/图片/模板。
可以使用gulp插件从文件夹到文件夹进行精确复制,但不包括具有给定扩展名(或正则表达式)的所有文件?
更新#1
@molda
我也有内部结构:
dist
因此,将所有静态文件保存在src / static中并不是解决方案