react-scripts V2.1.3 出现错误。我们刚刚从 V1.x 迁移到这个。在 react-scripts 升级之前,这一切都运行良好。
源文件(metadataAccess,进行导出)是 typescript 并具有以下代码:
export const NAVIGATION = 'Navigation';
Run Code Online (Sandbox Code Playgroud)
引用 const 的文件是 Javascript,如下所示:
import { WIDGET_TREE, NAVIGATION, metadataScan } from './universal/metadataAccess';
...
const scanNavigation = await metadataScan(dynamoClient, NAVIGATION);
Run Code Online (Sandbox Code Playgroud)
错误是:
Creating an optimized production build...
Failed to compile.
./src/App.jsx
Attempted import error: 'NAVIGATION' is not exported from './universal/metadataAccess'.
Run Code Online (Sandbox Code Playgroud)
如果我要修复这个错误(上图),我会在另一个 const 上遇到同样的问题。可悲的是,一次报告一个错误。我也在导出的枚举中得到它。全部来自 Typescript 文件。我将引用文件的扩展名更改为 .tsx(来自 .jsx)并且没有区别。
我在 Typescript compile、webpack 和 babel 的源代码中搜索了字符串“Attempted import”,但没有找到任何东西,所以我什至不知道是哪个代码导致了这个错误。
我还尝试在导入语句的文件名中添加“.js”,并且(生成的)Javascript 文件包含以下行:
exports.NAVIGATION = 'Navigation';
Run Code Online (Sandbox Code Playgroud)
它得到相同的结果。我尝试将导入语句更改为引用不存在的文件,但出现不同的错误,因此它似乎正在查找导入的文件。
关于如何让它运行的任何想法?
javascript typescript reactjs react-scripts create-react-app
我正在使用 create-react-app 并在我的项目上运行react-scripts build,但我在构建输出方面遇到了问题。我需要将构建输出放入构建文件夹的子目录中,如下所示
Build
-- Player
Run Code Online (Sandbox Code Playgroud)
我需要为 JS 和 CSS 文件生成的 URL(如此处所示)以将 Player 包含在路径中。我需要这些。
<link href="/static/css/main.02096f02.css" rel="stylesheet">
<script type="text/javascript" src="/static/js/main.75412701.js"></script>
Run Code Online (Sandbox Code Playgroud)
成为这些
<link href="/player/static/css/main.02096f02.css" rel="stylesheet">
<script type="text/javascript" src="/player/static/js/main.75412701.js"></script>
Run Code Online (Sandbox Code Playgroud)
我需要它来自动化我的构建和部署。否则,默认脚本可以完美运行。
我已经使用“create-react-app”创建了一个React应用程序,并且它通过“npm start”运行良好,但是,当我尝试构建或部署到Heroku时,我从react-scripts build.js中收到一个错误,日志如下:
-----> Build
Running build
> areaos-react@0.1.0 build /tmp/build_b6b622a1f46daa3af2d16fdb6ffb259a
> react-scripts build
Creating an optimized production build...
Failed to compile.
Parse error on line 1:
0.3(-1)
---^
Expecting end of input, "ADD", "SUB", "MUL", "DIV", got unexpected "LPAREN"
Run Code Online (Sandbox Code Playgroud)
我尝试过: -更新npm模块,包括react-scripts -从package.json中删除“react-scripts build” -将package.json中的“main”更改为“react-scripts start”
这是我的 package.json
{
"name": "doggos-react",
"version": "0.1.0",
"engines": {
"node": "8.9.3",
"npm": "6.9.0"
},
"private": true,
"dependencies": {
"caniuse-lite": "^1.0.30000989",
"chart.js": "^2.8.0",
"chartjs-plugin-labels": "^1.1.0",
"cors": "^2.8.5",
"express": "^4.17.1",
"gl-react": "^3.17.2",
"glsl-fxaa": "^3.0.0",
"glslify": "^7.0.0", …Run Code Online (Sandbox Code Playgroud) 我已将我的 CRA 项目升级为使用 React-scripts 3.2.0 当我运行时,npm run build我收到“正在创建优化的生产版本...”消息,但随后什么也没有发生,它就永远卡住了。
环境:
节点:v12.13.1
npm:6.12.1
项目详情:
typescript、scss 和 scss 模块
包.json
"dependencies": {
"@types/jest": "^24.0.11",
"@types/node": "^11.13.4",
"@types/react": "^16.8.13",
"@types/react-dom": "16.8.4",
"classnames": "^2.2.5",
"mobx": "^3.6.2",
"mobx-react": "^4.4.3",
"node-sass": "^4.12.0",
"react": "^16.8.6",
"react-scripts": "^3.2.0",
},
"devDependencies": {
"@typescript-eslint/eslint-plugin": "^2.6.1",
"@typescript-eslint/parser": "^2.6.1",
"babel-plugin-transform-decorators-legacy": "^1.3.4",
"enzyme": "^3.7.0",
"enzyme-adapter-react-16": "^1.6.0",
"husky": "^3.0.9",
"lint-staged": "^9.4.2",
"prettier": "^1.19.1",
"typescript": "^3.2.4"
},
Run Code Online (Sandbox Code Playgroud)
tsconfig.json
{
"compilerOptions": {
"outDir": "build/dist",
"module": "esnext",
"target": "es5",
"lib": ["es2016", "dom"],
"sourceMap": true,
"allowJs": true, …Run Code Online (Sandbox Code Playgroud) 目前,$ npm run build将文件编译为src/,/build一切正常。但是,有一些特定的 TypeScript 文件,src/integer.ts我想将其编译为其自己的 JavaScript 文件,build/integer.js并且所有其他文件都将“正常”编译。
这是项目结构:
/src
/build
Run Code Online (Sandbox Code Playgroud)
这是package.json文件:
"dependencies": {
"react-scripts": "3.4.1",
}
...
"scripts": {
"build": "react-scripts build",
}
Run Code Online (Sandbox Code Playgroud) 包.json
"eslintConfig": { "extends": [ "react-app", "react-app/jest" ] },
我有一个用 ReactJS 制作的网站。在 中public/index.html,我有
<head>
<script src="/lib/analyzejs-v1.js"></script>
<script src="/lib/analyzejs-v2.js"></script>
</head>
<body>
<div id="root"></div>
</body>
Run Code Online (Sandbox Code Playgroud)
其中analyzejs-v1.js有 6Mo,并且analyzejs-v2.js有 3Mo;它们都是固定文件,我无法对其进行太多修改。
这两个文件不是模块;它们的功能已声明(例如,declare function f1(address: string): string;在 中src/defines/analyzejs-v1.d.ts)。analyzejs-v1.js因此,某些组件通过使用函数名称直接调用函数f1(...),无需任何命名空间、导入或导出。其余组件analyzejs-v2.js通过使用函数名称f2(...)直接调用函数,无需任何命名空间、导入或导出。
加载这两个js库文件需要时间。所以我正在寻找一种方法来加载analyzejs-v1.js或analyzejs-v2.js根据组件(或 URL)。
那么有谁知道为不同组件加载不同JS库文件的常规方法吗?
"scripts": {
"start": "cross-env NODE_PATH=src react-scripts start",
"build": "cross-env NODE_PATH=src react-scripts build",
}
Run Code Online (Sandbox Code Playgroud)
如何在反应中将 localhost:3000 更改为 custom.domain
我正在将反应脚本更新到最新版本,即 5.0.0,并开始看到上述错误。一篇文章建议将@typescript-eslint升级到版本^5.0.0,以便与eslint版本^8.3.0兼容,默认情况下通过将react-scripts更新到5.0.0来实现,我这样做了,但错误仍然存在。请提供帮助,因为这是一个关键问题,因为构建失败。
react-scripts ×10
reactjs ×8
javascript ×2
typescript ×2
webpack ×2
babel-jest ×1
cross-domain ×1
eslint ×1
frontend ×1
hamlet ×1
heroku ×1
node.js ×1
npm ×1
script-tag ×1
source-maps ×1