У меня проблемы с изменением внешнего интерфейса, который работает с Django rest framework (на том же порту).Интерфейс основан на React.Итак, у меня была моя старая папка src React, которая сначала работала с npm, и я получил новый интерфейс, который мне нужно начать с yarn (он также работает и с npm start, до реализации в папке Django).Так что теперь я просто заменил папки src и запустил npm install, но я вижу, что package.json не обновляется.В моем src / index.js у меня была реальная разница, поэтому в первой папке src (старый шаблон) у меня было только
import App from './components/App';
Поэтому я изменил ее на
import NextApp from './NextApp';
, потому чтоэто был основной файл реакции ... но во втором, новом шаблоне у меня был src / index.js, такой как
import React from "react";
import ReactDOM from "react-dom";
import NextApp from './NextApp';
import registerServiceWorker from './registerServiceWorker';
// Add this import:
import {AppContainer} from 'react-hot-loader';
// Wrap the rendering in a function:
const render = Component => {
ReactDOM.render(
// Wrap App inside AppContainer
<AppContainer>
<NextApp/>
</AppContainer>,
document.getElementById('root')
);
};
// Do this once
registerServiceWorker();
// Render once
render(NextApp);
// Webpack Hot Module Replacement API
if (module.hot) {
module.hot.accept('./NextApp', () => {
render(NextApp);
});
}
Так что теперь мне нужно проверить public / index.html, но мой index.htmlв Django Framework находился в папке root / templates / frontend / index.html, поэтому у меня не было общей папки, но у меня была общая папка в новом шаблоне, которая была в корневом каталоге, а public.html был как обычное приложение React, страница с надписью «Вам нужно включить JavaScript, чтобы запустить это приложение».с CSS-файлами и некоторыми скриптами в шапке.Поэтому я просто изменил сценарии и CSS-файлы, и root / templates / frontend / index.html выглядит следующим образом (как первый шаблон)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="manifest" href="%PUBLIC_URL%/manifest.json">
<link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico">
<link rel="stylesheet" href="/loader.css"/>
<!-- Here are scripts and css files -->
<title>eComet</title>
</head>
<body>
<div id="app"></div>
{% load static %}
<script src="{% static "frontend/main.js" %}"></script>
</body>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
</html>
Итак, я также просто скопировал / вставилновый package.json к старому и запустить npm install, все устанавливается нормально (я думаю), и когда я запускаю npm run, чтобы проверить первый npm, он выдает следующее:
Error: Cannot find module 'C:\Users\Rade\Desktop\ai/config-overrides'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:582:15)
at Function.Module._load (internal/modules/cjs/loader.js:508:25)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
at Object.<anonymous> (C:\Users\Rade\Desktop\ai\node_modules\react-app-rewired\config-overrides.js:5:18)
at Module._compile (internal/modules/cjs/loader.js:701:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)
at Module.load (internal/modules/cjs/loader.js:600:32)
at tryModuleLoad (internal/modules/cjs/loader.js:539:12)
at Function.Module._load (internal/modules/cjs/loader.js:531:3)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! Wieldy@1.5.0 start: `react-app-rewired start`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the Wieldy@1.5.0 start script.
print(foo)
После этого я попробовал пряжуstart, та же проблема.
Так что, очевидно, мой стартовый скрипт был проблемой.Я попытался добавить старый стартовый скрипт (это был стартовый скрипт из старого реактивного скрипта, который был реализован в Django), который выглядит следующим образом.
"dev": "webpack --mode development --watch ./ecomet/frontend/src/index.js --output ./ecomet/frontend/static/frontend/main.js",
"build": "webpack --mode production ./ecomet/frontend/src/index.js --output ./ecomet/frontend/static/frontend/main.js"
},
Запущен снова npm install
и npm install webpack
и получил только
npm ERR! missing script: start
npm ERR! A complete log of this run can be found in:
и вот так выглядит стартовый скрипт package.json, когда я заменил старый package.json новым из нового шаблона:
"start": "react-app-rewired start",
"build": "react-app-rewired build",
"test": "react-app-rewired --env=jsdom"
Итак, во-первых, у старого шаблона был веб-пакети в новом у меня была пряжа.Вот как выглядит wabpack.config.js:
module.exports = {
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: "babel-loader"
}
}
]
}
}
Что я делаю не так?