Webpack 4가 분할 모듈로 취급하는 원시 JSON 파일을 배포하는 방법은 무엇입니까?

존 프리먼

나는 이것이 드문 문제라고 생각하지 않지만 키워드가 많은 오탐을 일으키는 것 같습니다. "webpack 동적 구성 파일", "webpack 런타임로드 JSON 파일"등을 검색해 보았습니다. Webpack을 동적으로 구성한 결과는 많지만 번들 앱을 동적으로 구성한 결과는 많지 않습니다.

  • 내 배포에 원시 JSON으로 배치되는 구성 파일을 갖고 싶습니다. 즉, Webpack 런타임이나 모듈 상용구가 없습니다. 유효한 JSON 파일입니다.

  • 마치 모듈 인 것처럼 내 코드에서 JSON 구성을 "가져 오기"합니다. 예를 들면 다음과 같습니다.

    import config from './config.json'
    
  • Webpack이 번들에서 JSON 파일을 생략하기를 원하지만 config.json서버 에서 대기 를 비동기 적으로 요청하고 주입하기 위해 필요한 코드를 삽입 합니다.

  • Webpack ./config.json이 빌드시 존재 하는지 여부를 무시 하고 런타임시 올바른 위치에있을 것이라고 낙관적으로 가정하기를 원합니다 .

  • './config.json'모듈 별칭을 지정할 수 있고 Webpack이 별칭이 지정된 파일을 config.json빌드 디렉토리 의 올바른 위치 (이름 포함 )에 복사 할 수 있다면 좋겠습니다 .

이렇게하면 내 사이트 관리자가 Webpack을 실행하지 않고도 편집 할 수있는 원시 JSON 파일이 배포에 제공됩니다. config.json일반 모듈 처럼 개발자 코드로 사용할 수 있습니다 . 어떻게 할 수 있습니까? 나는 사용 제안을 보았다

externals: {
  './config.json': "require('./config.prod.json')",
},

하지만 require존재하지 않는 브라우저에서는 작동하지 않습니다.

나는 운 없이이 구성을 시도했습니다. JSON은 여전히 ​​번들에 인라인됩니다.

resolve: {
  alias: {
    './config.json': path.resolve(__dirname, 'src/config.prod.json')
  }
},
optimization: {
  splitChunks: {
    cacheGroups: {
      config: {
        test: './config.json',
        chunks: 'all',
        name: 'config',
        priority: 100
      }
    }
  }
}

Webpack 4를 사용하고 있습니다.

Lukas-Pureke

요컨대, 당신은 사용할 수 없습니다

import config from './config.json'

적어도 이것이 브라우저에서 실행되어야하는 경우는 아닙니다.
webpack 외부 는 nodejs 애플리케이션에서 이것을 가능하게합니다.

당신이 정말로 원하는 것은 정상적인 http 호출입니다. fetch와 같은
것으로 config.json파일을 얻으십시오 .

fetch('url/config.json')

당신은 사용할 수 있습니다 복사 웹팩 - 플러그인 웹팩 컴파일 때 올바른 위치에 설정을 넣어 (하지만 당신이 원하는 않는 변화는 서버에서이 파일을 직접가있는 경우)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Webpack 4가 분할 모듈로 취급하는 원시 JSON 파일을 배포하는 방법은 무엇입니까?

npm을 통해 포함 된 별도의 모듈로 코드를 분할하는 Webpack, es6를 컴파일하는 방법은 무엇입니까?

모든 코드 분할 모듈을 단일 파일로 결합하는 방법은 무엇입니까?

Angular2 : 지시문과 서비스를 모두 포함하는 기능을 모듈로 분해하는 가장 좋은 방법은 무엇입니까?

모듈을로드 할 때 메시지를 인쇄하기 위해 환경 모듈 모듈 파일을 얻는 방법은 무엇입니까?

webpack vuejs / 개발 모드에서만 모듈을 가져오고 프로덕션 모드에서 무시하는 방법은 무엇입니까?

webpack으로 js 파일을 추가하는 방법은 무엇입니까?

Webpack : 원시 HTML을 React JSX로로드하는 방법은 무엇입니까?

JSON을 배열로 분할하는 방법은 무엇입니까?

파이썬의 "가져 오기"가 이름을 함수가 아닌 모듈로 취급하도록 강제하는 방법은 무엇입니까?

Webpack : 페이지로드시 모듈을로드하는 방법은 무엇입니까?

JavaScript의 json2csv 모듈에서 사용할 배열을 포함하는 JS 객체를 구문 분석하는 방법은 무엇입니까?

파일 항목을 배열로 분할하는 방법은 무엇입니까?

objective-c json parser : 대괄호가 아닌 문자열로 시작하는 json 파일을 구문 분석하는 방법은 무엇입니까?

모든 커밋을 파일로 분할하는 방법은 무엇입니까?

파이썬 xarray에 추가 차원을 추가하여 하나의 배열을 여러 배열로 분할하는 방법은 무엇입니까?

JS 모듈을 TypeScript 파일로 가져 오는 방법은 무엇입니까?

대시가 포함 된 모듈 이름으로 명령을 한정하는 방법은 무엇입니까?

json 파일을 무시하는 방법은 무엇입니까?

이름을 기반으로 배열 json 파일의 값을 증가시키는 방법은 무엇입니까?

팬더가있는 NULL을 일반 문자열로 취급하는 방법은 무엇입니까?

파일을 분할 한 후 다시 결합하는 가장 좋은 방법은 무엇입니까?

PHP 다차원 배열을 단일 배열로 분할하는 방법은 무엇입니까?

JSON 구조를 포함하는 다운로드 할 파일을 생성하는 방법은 무엇입니까?

json 배열을 포함하는 파일에 항목을 추가하는 방법은 무엇입니까?

메시지 당 사서함을 단일 파일로 분할하는 방법은 무엇입니까?

Javascript로 DynamoDB에서 JSON 형식 문자열을 분할하는 가장 좋은 방법은 무엇입니까?

jsfiddle에 로컬 json 파일을 추가하는 방법은 무엇입니까?

노드 "-r (모듈)"로 pm2를 시작하는 방법 또는 node.js에 모듈을 배포하는 방법은 무엇입니까?

TOP 리스트

뜨겁다태그

보관