在我的React npm模块开发期间,我用它进行了符号链接npm link.执行此操作后,程序包将正确链接并显示在使用者应用程序中node_modules.
该模块公开了一个界面来创建一个React组件.因为我正在使用React,jsx而且es2015,我正在使用babel以前在预发布阶段转换我的模块代码npm prepublish hook.
但是,当我尝试使用webpack(即链接后)构建我的消费者应用程序时,我的包中出现错误,说明:
模块构建失败:错误:找不到预设"es2015"
现在有趣的是,如果我在npm上发布包,那么npm install从我的消费者应用程序中的注册表构建它,一切正常.
我尝试babel-preset-es2015在我的消费者应用程序中安装,但随后它开始抱怨没有找到babel:
找不到模块:错误:无法解析模块'babel'
同样,如果我从npm注册表安装它一切正常,在构建期间不会抛出任何错误.
我也试过安装babel-core,babel-cli而且babel-polyfill都无济于事.
我babel v6.1.x到处都在使用,并且知道所有最近的变化,但是我想我错过了一些明显的东西,如果有人可以帮助我,我会非常感激,因为不断发布模块以测试是否有用的东西只是不好的做法.
为了完整起见,这里是代码:
以下是链接模块的步骤:
cd ~/Sites/me/react-leafboxnpm linkcd ~/Sites/me/mappnpm link react-leafboxnpm start建筑后的堆栈跟踪:
ERROR in ../react-leafbox/lib/index.js
Module build failed: Error: Couldn't find preset "es2015"
at OptionManager.mergePresets (/Users/daniel/Sites/me/mapp/node_modules/babel-core/lib/transformation/file/options/option-manager.js:329:17) …Run Code Online (Sandbox Code Playgroud) 我试图使我的javascript代码遵循模块模式,在这里我要遵循:
http://addyosmani.com/resources/essentialjsdesignpatterns/book/#modulepatternjavascript
这是我目前的代码,除了运行时调用外,没有语法问题
Pinetime.init()不是函数。
var loosetime = (function () {
var looseconfig = {
"format": "DD/MM/YY HH24:MM:SS.s",
"value": "DD/MM/YY 00:00.00",
"class": "input",
"delims": ['/', '-', '_', '.', '|', ',', ' ', ':']
};
function loosetime(a, b, c, d, e) {
var format = a;
var appendLoc = b;
var inputVal = c;
var inputName = d;
var inputClass = e;
var inputLength;
try {
if (typeof(format) == 'undefined') {
format = looseconfig.format;
} else {
format = parseDateTime(format);
}
try …Run Code Online (Sandbox Code Playgroud)