2016-12-10 5 views
1

Я скопировал файлы js из проекта https://github.com/videojs/video.js в подпапку моего проекта. настроить большое количество зависимостей и называется browserify в командной строке:Вавилонские ошибки при пересылке файлов не в определенном месте

node ./node_modules/browserify/bin/cmd.js dev\videojs\js\video.js -t [ babelify ]

Выход выглядит так:

Error: D:/Webs/videojs/dev/videojs/js/video.js: Cannot find module '../../package.json' from 'D:\Webs\videojs\dev\videojs\js' 
    at Function.module.exports [as sync] (D:\Webs\videojs\node_modules\resolve\lib\sync.js:33:11) 
    at PluginPass.MemberExpression (D:\Webs\videojs\node_modules\babel-plugin-inline-json\lib\index.js:27:45) 
    at newFn (D:\Webs\videojs\node_modules\babel-traverse\lib\visitors.js:276:21) 
    at NodePath._call (D:\Webs\videojs\node_modules\babel-traverse\lib\path\context.js:76:18) 
    at NodePath.call (D:\Webs\videojs\node_modules\babel-traverse\lib\path\context.js:48:17) 
    at NodePath.visit (D:\Webs\videojs\node_modules\babel-traverse\lib\path\context.js:105:12) 
    at TraversalContext.visitQueue (D:\Webs\videojs\node_modules\babel-traverse\lib\context.js:150:16) 
    at TraversalContext.visitSingle (D:\Webs\videojs\node_modules\babel-traverse\lib\context.js:108:19) 
    at TraversalContext.visit (D:\Webs\videojs\node_modules\babel-traverse\lib\context.js:192:19) 
    at Function.traverse.node (D:\Webs\videojs\node_modules\babel-traverse\lib\index.js:114:17) 

Когда я переместить файлы одну папку вверх, пробеги команд и и transpiles все файлы.

Теперь я задаюсь вопросом, откуда эта ошибка. babel-traverse, похоже, проходит через плагины и, в конце концов, обнаруживает, что он выполняется не ровно на 3 уровня ниже корня проекта. Это намеренное поведение? Это вопрос бабеля, браузера, плагина или видео?

ответ

1

Используйте эту команду вместо:

./node_modules/.bin/browserify dev\videojs\js\video.js -t [ babelify ] 

Когда Browserify установлен, сценарии командной строки добавляются к node_modules/.bin, так как это стандартная практика. Это те команды, которые вы должны запускать; а не скрипты в собственном каталоге bin Browserify.

Обратите внимание, что сценарии представляют собой сценарии оболочки или сценарии Windows CMD и что они не запускаются с использованием node.

Или, если добавить следующие строки в package.json, вы можете запустить Browserify с помощью NPM (также стандартная практика):

{ 

    ... 
    "scripts": { 
     "browserify": "browserify" 
    } 
} 

и команда будет затем:

npm run browserify dev\videojs\js\video.js -t [ babelify ] 

Или, если вы хотите сохранить параметры в конфигурации "scripts":

{ 

    ... 
    "scripts": { 
     "bundle": "browserify dev/videojs/js/video.js -t [ babelify ]" 
    } 
} 

и:

npm run bundle 
+0

Я был немного преждевременным с моей похвалой. Я переместил папку js и, в конечном итоге, получил сообщение «Не могу найти модуль» ../../ package.json''. Тем не менее, вызов 'node_modules \ .bin \ browserify' и помещение его в иерархию' scripts' в package.json - это ценный совет. –

+0

Я перечитал ваш вопрос. Есть ли причина, по которой вы решили не устанавливать video.js [с помощью NPM] (http://videojs.com/getting-started/#download-npm)? Я бы сделал это, а не поместил его в «подпапку моего проекта». – cartant