Доброго времени суток. Я просто не могу заставить работать что-то простое!
У меня есть структура каталогов
myapp
app
server
api.py
client
dist
node_modules
package.json
src
webpack.config.js
smartForm
smartform.js
morestuff
morestuff.js
Теперь в React-клиенте myapp я хочу использовать JSX-код из globalstuff, но он не переносится. Похоже, что это должно быть легкое регулярное выражение для включения: но на всю жизнь я не могу этого понять! Помощь приветствуется!
Пример просил! Спасибо, что посмотрели!
РЕДАКТИРОВАТЬ
ERROR in /disk/dev/www/smartForm/smartForm.js
Module build failed: SyntaxError: Unexpected token (244:16)
242 | }
243 |
> 244 | return( <div>
| ^
245 | {formOut}
246 | </div>
247 | );
@ ./src/containers/people_new_edit.js 23:17-62
@ ./src/routes.js
@ ./src/components/app.js
@ ./src/index.js
@ multi (webpack)-dev-server/client?http://localhost:8888 webpack/hot/dev-server webpack-dev-server/client?http://localhost:8888 webpack/hot/only-dev-server ./src/index.js
webpack: Failed to compile.
Я хочу использовать smartForm из нескольких клиентских приложений.
Мой веб-пакет выглядит так: EDITED.
var path = require('path');
module.exports = {
entry: [
'webpack-dev-server/client?http://localhost:8888',
'webpack/hot/only-dev-server',
'./src/index.js'
],
module: {
loaders: [{
test: /\.css$/,
include: /style/,
loaders: [
'style-loader',
'css-loader',
'less-loader']
},
{
test: /\.js?$/,
exclude: /node_modules/,
include:[
/src/,
path.resolve(__dirname,'../','../','../','smartForm')
],
loaders: 'react-hot-loader/webpack!babel-loader'
}]
},
resolve: {
extensions: ['*', '.js', '.jsx']
},
output: {
path: __dirname + '/dist',
publicPath: '/',
filename: 'bundle.js'
},
devServer: {
historyApiFallback: true,
contentBase: './dist',
port: 8888,
hot: true
}
};
Надеюсь, это яснее! Это кажется простым, но я не могу этого понять! Включаемый объект втягивается, но JSX не переносится. Ваше здоровье.
Я изменил REGEX на строку. Тот же результат. JSX не переносится. Я изменил описание каталога, чтобы было понятнее. Та.
Я думаю, вам не обязательно использовать регулярное выражение, вы можете просто заключить строку в кавычки, чтобы упростить задачу: "../../../smartForm" - но этот путь не отображается в вашем дереве файлов?
Почему уценка?





Вместо строки регулярного выражения используйте path.resolve(__dirname, '../', '../', '../', 'smartForm')
Та же ошибка. Неожиданный токен на <div>. но спасибо. Стоит попробовать. Кто-то еще ДОЛЖЕН поделиться кодом утилиты? !!!
Правильно ли переносится ваш модуль smartForm, если вы поместите его в каталог src вместо текущего местоположения?
Да. Он вырос в каталоге src. У нас есть еще несколько новых приложений, кроме моего, поэтому мы решили, что это пригодится всей компании. Так что я поднял его и поднял. Я не думаю, что простое включение сработает. Я думаю, что для этого каталогу нужны собственные .babel.rc, package.json, node_modules. Я был бы счастлив, если бы ошибся, но сейчас я именно об этом. Ваше здоровье!
Вы используете файл babel.config.js? Скорее всего, вам будет полезен файл babel.config.js верхнего уровня, который влияет на все подкаталоги. Вы также можете использовать файлы .babelrc для отдельных каталогов.
Чай, идея «монопроекта». Я не очень-то увлекаюсь тем, что .babel.rc - это «один файл, который управляет всеми». Кроме того, на / disk / dev / у нас много проектов, кроме React / Babel. Но спасибо за предложение. Думаю, я собираюсь изучить, как создавать свои утилиты как частные модули NPM, чтобы я мог просто установить их там, где это необходимо. Кажется, простой способ. В мире C / PHP простой include () был бы отличным вариантом!
Не уверен, чего вы хотите достичь, возможно, вам поможет пример