У вас есть несколько вариантов.
Вариант 1 - Создать NPM Пакет
Превратить Project X в модуль.
Это будет означать, что вы перейдете от go к Project X в папку разработки и запустите npm login
и npm publish
. Вы можете узнать больше об этом здесь
После этого, как только ваш пакет будет включен NPM, вы можете go на Project Y и выполните следующие действия:
import React, { Component } from 'react'
import Comp from 'my-package'
export default class Comp extends Component {
render() {
return (
<div>
HELLO <Comp/>
</div>
)
}
}
Вариант 2 - Загрузите связанный JS
Вместо того, чтобы ваш скрипт загрузил следующее:
import React, { Component } from 'react'
export default class Comp extends Component {
render() {
return (
<div>
WORLD
</div>
)
}
}
Это JSX Синтаксис. И он не может быть прочитан в обычном формате Vanilla JS - поэтому вы не можете просто импортировать его как <script src="myscript.js" />
, так как это недопустимо JS без синтаксического анализатора, такого как Babel.
Я бы сделал go на Project X и запустите npm run build
. После этого я получал bundle.js
- связанный и минифицированный скрипт, написанный на Plain JS. Это будет выглядеть примерно так:
(this.webpackJsonpchrome_extension=this.webpackJsonpchrome_extension||[]).push([[2],[function(e,t,n){"use strict";e.exports=n(99)},,function(e,t,n){"use strict";function r(){return(r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";function r(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)
В основном код, не читаемый человеком, который можно разобрать с помощью тега <script src="myscript.js" />
. И тогда вам нужно будет go в свой index.html
и вставить его туда или использовать некоторые из модулей, например response-script-tag
Я очень рекомендую использовать Option №1. Поскольку это предпочтительный способ получения go. Изучите создание пакетов NPM из вашего проекта React и следуйте шаг за шагом.
Еще несколько полезных ссылок о Варианте №1:
Создайте простой пакет React npm простыми шагами с использованием CRA
Как опубликовать sh ваш компонент React на npm
Надеюсь, это поможет вам в правильном направлении, но текущий способ, которым вы это делаете, не- go
РЕДАКТИРОВАТЬ - Технически есть вариант №3, но я бы не рекомендовал его.
Вариант 3. Сделайте так, чтобы ваш URL-адрес предоставлял только JSX, и загрузите его в dangerouslySetInnerHtml
.
Допустим, ваш https://codepen.io/sirakc/pen/ZEWEMjQ.js предоставит только это:
<div>
WORLD
</div>
Технически, вы могли бы затем превратить свою ссылку в нечто более читабельное, например .txt
расширение, получить его, сохранить в переменной и загрузить в dangerouslySetInnerHTML
.
, например:
const otherProjectJSX = somehowLoad(https://codepen.io/sirakc/pen/ZEWEMjQ.js)
const MyApp = () => <div dangrouslySetInnerHtml={otherProjectJSX} />
В основном это было бы так:
const otherProjectJSX = '<div>WORLD</div>'
const MyApp = () => <div dangrouslySetInnerHtml={otherProjectJSX} />
Я бы не рекомендовал это, но если это только то, что внутри render()
, вас волнует бой - все-таки может сработать.