나는 http://gregblogs.com/how-django-reactjs-and-browserify/을 따르려고합니다. collectstatic
을 얻기 위해 몇 개의 농구를 통과했지만 지금은 오류없이 실행됩니다. 그러나 내 반응 구성 요소가 포함 된 페이지를로드하려고하면 또 다른 컴파일 프로세스가 시작됩니다 (collectstatic은 모든 것을 사전 처리하고 런타임 컴파일 시간은 아무 것도 없을 것이라고 생각했습니다). 지금 작동하게하려면 해킹이 필요합니다 (https://github.com/j0hnsmith/django-pipeline-browserify/issues/14). 그러나이 패치를 적용한 후에도 불행히도이 컴파일 작업은 오류가 발생합니다. 명령이 이제는 정상적으로 보일지라도 : 실행하면Django 파이프 라인을 사용하여 Windows에서 브라우저
C:\Users\JohnSmith\node_modules\.bin\browserify.cmd -t babelify --deps C:\Users\JohnSmith\Documents\test\company\static\dashboard\js\react_test_dashboard_widget.browserify.js
오류없이 실행되며 종속성 JSON이 생성됩니다. 같은 명령이 장고/파이프 라인에 의해 하위 프로세스로 실행되면 오류 밖으로 어떻게 그것을 극복하는
Error: Cannot find module ' babelify' from 'C:\Users\JohnSmith\Documents\test\company
말?
packages.json 니펫을
"dependencies": {
"babel-cli": "^6.6.5",
"babel-preset-es2015": "^6.6.0",
"yuglify": "^0.1.4",
"babelify": "^7.3.0",
"browserify": "^13.0.1",
"jquery": "^2.2.0",
"react": "^15.2.0"
},
"devDependencies": {
"babel-plugin-transform-class-properties": "^6.10.2",
"babel-plugin-transform-react-jsx": "^6.8.0",
"babel-preset-es2016": "^6.11.0",
"babel-preset-react": "^6.11.1"
}
요구 사항은 니펫을 : (BTW https://github.com/j0hnsmith/django-pipeline-browserify/issues/15)
...
django-pipeline==1.6.6
django-pipeline-browserify==0.4.1
futures==3.0.5
...
일부 설정 :
PIPELINE["CSS_COMPRESSOR"] = "pipeline.compressors.NoopCompressor"
PIPELINE["JS_COMPRESSOR"] = "pipeline.compressors.NoopCompressor"
PIPELINE['SASS_BINARY'] = 'C:\\Ruby22-x64\\bin\\sass.bat'
PIPELINE['BABEL_BINARY'] = 'c:\\Users\\JohnSmith\\node_modules\\.bin\\babel.cmd'
PIPELINE['BROWSERIFY_BINARY'] = 'c:\\Users\\JohnSmith\\node_modules\\.bin\\browserify.cmd'
PIPELINE_BROWSERIFY_BINARY = PIPELINE['BROWSERIFY_BINARY']
if DEBUG:
PIPELINE["BROWSERIFY_ARGUMENTS"] = '-t babelify'
PIPELINE_BROWSERIFY_ARGUMENTS = PIPELINE["BROWSERIFY_ARGUMENTS"]
(! 마지막이 컴파일러를 위해 필요했다) 내 시스템 : Win 10, Python 2.7, Django 1.8
것은 내가
업데이트를 지정해야 밖의 무엇을 말해 : 오류 메시지가 노드 자체에서 온다. 아래의 호출 스택을 참조하십시오.
CompilerError: ['c:\\Users\\JohnSmith\\node_modules\\.bin\\browserify.cmd', '-t c:\\Users\\JohnSmith\\Documents\\test\\node_modules\\babelify\\index.js', u'--deps C:\\Users\\JohnSmith\\Documents\\test\\company\\static\\dashboard\\js\\react_test_dashboard_widget.browserify.js'] exit code 1
Error: Cannot find module ' c:\Users\JohnSmith\Documents\test\node_modules\babelify\index.js' from 'C:\Users\JohnSmith\Documents\test\company'
at c:\Users\JohnSmith\node_modules\resolve\lib\async.js:46:17
at process (c:\Users\JohnSmith\node_modules\resolve\lib\async.js:173:43)
at ondir (c:\Users\JohnSmith\node_modules\resolve\lib\async.js:188:17)
at load (c:\Users\JohnSmith\node_modules\resolve\lib\async.js:69:43)
at onex (c:\Users\JohnSmith\node_modules\resolve\lib\async.js:92:31)
at c:\Users\JohnSmith\node_modules\resolve\lib\async.js:22:47
at FSReqWrap.oncomplete (fs.js:82:15)
이 어쩌면 문제가 있음을 나에게 조언 : 나는 (이 또한 응용 프로그램에 명령 줄에서 잘 작동하지만 잘) 명시 적으로 대신 모듈 이름의 변환 JS 파일을 지정하려고 여기에 참고 노드 자체가 t
매개 변수를 캡처하고 browserify
으로 전달하지 않습니다. 확실히이 문제가 중요 할 수 있습니다
https://github.com/j0hnsmith/django-pipeline-browserify/issues/14 내가
command = (
getattr(settings, 'PIPELINE_BROWSERIFY_BINARY', '/usr/bin/env browserify'),
getattr(settings, 'PIPELINE_BROWSERIFY_ARGUMENTS', ''),
"--deps %s" % self.storage.path(infile),
)
command = "%s %s %s --deps %s" % (
getattr(settings, 'PIPELINE_BROWSERIFY_VARS', ''),
getattr(settings, 'PIPELINE_BROWSERIFY_BINARY', '/usr/bin/env browserify'),
getattr(settings, 'PIPELINE_BROWSERIFY_ARGUMENTS', ''),
self.storage.path(infile),
)
를 오버라이드 '파이프 라인 컴파일러 코드는 튜플을 기대 원인이된다. 그는 원래 코드는 하나의 완전한 문자열을 받았지만, 그것은, https://github.com/jazzband/django-pipeline/blob/master/pipeline/compilers/init.py#L108
argument_list = []
for flattening_arg in command:
if isinstance(flattening_arg, string_types):
argument_list.append(flattening_arg)
else:
argument_list.extend(flattening_arg)
이 나중에 재앙으로 이어질 것이라고보고 그들 모두 인수 것을 생각하고, 개별 문자로 해부 :
CompilerError: [Error 87] The parameter is incorrect
나는 다음입니다 동일한 자습서와 collectstatic 작업을 얻을 수없는 것. 다음과 같은 오류가 발생합니다 : "django/contrib/staticfiles/management/commands/collectstatic.py", 줄 122,원본 경로, processed_path, 프로세서에서 처리 : 파일 "pipeline/storage.py", 24 행 , post_process에서 output_file = package.output_filename output_filename 파일의 "pipeline/packager.py"파일에서 return self.config.get ('output_filename') AttributeError : 'tuple'객체에 'get'속성이 없습니다. 비슷한 오류가 발생했는지 궁금하십니까? – Rads
벨을 울리지 않는 @ 라디오. 귀하의 파이프 라인 구성에 결함이있는 것 같습니다. 이것은 (튜플을 제공하거나 예상했을 때 튜플을 얻지 못할 때) 누락 된 쉼표 또는 쉼표로 인해 발생할 수 있습니다. 이것은 어딘가에 여분의 쉼표처럼 보이게됩니다. 질문에 구성을 게시하고 여기에 링크를 붙여서 내가 따를 수 있도록하십시오. 또는 그것을 Gist에 넣고 링크를 말해주십시오. –
@Rads 당신의 경우'browserify '가 관련되어 있거나'파이프 라인'만 있습니까? 방정식에'browserify '를 넣었을 때 이미 작동중인 파이프 라인 구성을 가지고 있습니다. –