From 52e7af41483f612116afa49422e73f303062536f Mon Sep 17 00:00:00 2001 From: Calen Pennington Date: Tue, 20 Feb 2018 16:34:56 -0500 Subject: [PATCH] Move pattern-replacement file lists into a separate file Move pattern-replacement file lists into a separate file punt the react stuff for now --- .../js/features_jsx/studio/NoTextbooks.jsx | 24 ---- webpack-config/file-lists.js | 108 +++++++++++++++ webpack.common.config.js | 124 +++--------------- 3 files changed, 126 insertions(+), 130 deletions(-) delete mode 100644 cms/static/js/features_jsx/studio/NoTextbooks.jsx create mode 100644 webpack-config/file-lists.js diff --git a/cms/static/js/features_jsx/studio/NoTextbooks.jsx b/cms/static/js/features_jsx/studio/NoTextbooks.jsx deleted file mode 100644 index 92a06576aa..0000000000 --- a/cms/static/js/features_jsx/studio/NoTextbooks.jsx +++ /dev/null @@ -1,24 +0,0 @@ -/* global gettext */ - -import PropTypes from 'prop-types'; -import React from 'react'; - -export class NoTextbooks extends React.Component { - render() { - return ( -
-

- {gettext("You haven't added any textbooks to this course yet.")} - - - {gettext("Add your first textbook")} - -

-
- ); - } -} - -NoTextbooks.propTypes = { - -}; diff --git a/webpack-config/file-lists.js b/webpack-config/file-lists.js new file mode 100644 index 0000000000..fde698a0ab --- /dev/null +++ b/webpack-config/file-lists.js @@ -0,0 +1,108 @@ +var path = require('path'); + +module.exports = { + namespacedRequire: [ + path.resolve(__dirname, '../common/static/common/js/components/views/feedback_notification.js'), + path.resolve(__dirname, '../common/static/common/js/components/views/feedback_prompt.js'), + path.resolve(__dirname, '../common/static/common/js/components/views/feedback.js'), + path.resolve(__dirname, '../common/static/common/js/components/views/paging_footer.js'), + path.resolve(__dirname, '../cms/static/js/views/paging.js'), + path.resolve(__dirname, '../common/static/common/js/components/utils/view_utils.js') + ], + + // These files are used by RequireJS as well, so we can't remove + // the instances of "text!some/file.underscore" (which webpack currently + // processes twice). So instead we have webpack dynamically remove the `text!` prefix + // until we can remove RequireJS from the system. + textBangUnderscore: [ + path.resolve(__dirname, '../cms/static/js/certificates/views/certificate_details.js'), + path.resolve(__dirname, '../cms/static/js/certificates/views/certificate_editor.js'), + path.resolve(__dirname, '../cms/static/js/certificates/views/certificate_preview.js'), + path.resolve(__dirname, '../cms/static/js/certificates/views/signatory_details.js'), + path.resolve(__dirname, '../cms/static/js/certificates/views/signatory_editor.js'), + path.resolve(__dirname, '../cms/static/js/views/active_video_upload_list.js'), + path.resolve(__dirname, '../cms/static/js/views/assets.js'), + path.resolve(__dirname, '../cms/static/js/views/course_video_settings.js'), + path.resolve(__dirname, '../cms/static/js/views/edit_chapter.js'), + path.resolve(__dirname, '../cms/static/js/views/experiment_group_edit.js'), + path.resolve(__dirname, '../cms/static/js/views/license.js'), + path.resolve(__dirname, '../cms/static/js/views/modals/move_xblock_modal.js'), + path.resolve(__dirname, '../cms/static/js/views/move_xblock_breadcrumb.js'), + path.resolve(__dirname, '../cms/static/js/views/move_xblock_list.js'), + path.resolve(__dirname, '../cms/static/js/views/paging_header.js'), + path.resolve(__dirname, '../cms/static/js/views/previous_video_upload_list.js'), + path.resolve(__dirname, '../cms/static/js/views/previous_video_upload.js'), + path.resolve(__dirname, '../cms/static/js/views/video_thumbnail.js'), + path.resolve(__dirname, '../cms/static/js/views/video_transcripts.js'), + path.resolve(__dirname, '../common/static/common/js/components/views/feedback.js'), + path.resolve(__dirname, '../common/static/common/js/components/views/paginated_view.js'), + path.resolve(__dirname, '../common/static/common/js/components/views/paging_footer.js'), + path.resolve(__dirname, '../common/static/common/js/components/views/paging_header.js'), + path.resolve(__dirname, '../common/static/common/js/components/views/progress_circle_view.js'), + path.resolve(__dirname, '../common/static/common/js/components/views/search_field.js'), + path.resolve(__dirname, '../common/static/common/js/components/views/tabbed_view.js'), + path.resolve(__dirname, '../lms/djangoapps/discussion/static/discussion/js/views/discussion_board_view.js'), + path.resolve(__dirname, '../lms/djangoapps/discussion/static/discussion/js/views/discussion_fake_breadcrumbs.js'), + path.resolve(__dirname, '../lms/djangoapps/discussion/static/discussion/js/views/discussion_search_view.js'), + path.resolve(__dirname, '../lms/djangoapps/discussion/static/discussion/js/views/discussion_user_profile_view.js'), + path.resolve(__dirname, '../lms/djangoapps/support/static/support/js/views/certificates.js'), + path.resolve(__dirname, '../lms/djangoapps/support/static/support/js/views/enrollment_modal.js'), + path.resolve(__dirname, '../lms/djangoapps/support/static/support/js/views/enrollment.js'), + path.resolve(__dirname, '../lms/djangoapps/support/static/support/js/views/manage_user.js'), + path.resolve(__dirname, '../lms/djangoapps/teams/static/teams/js/views/edit_team_members.js'), + path.resolve(__dirname, '../lms/djangoapps/teams/static/teams/js/views/edit_team.js'), + path.resolve(__dirname, '../lms/djangoapps/teams/static/teams/js/views/instructor_tools.js'), + path.resolve(__dirname, '../lms/djangoapps/teams/static/teams/js/views/team_card.js'), + path.resolve(__dirname, '../lms/djangoapps/teams/static/teams/js/views/team_profile_header_actions.js'), + path.resolve(__dirname, '../lms/djangoapps/teams/static/teams/js/views/team_profile.js'), + path.resolve(__dirname, '../lms/djangoapps/teams/static/teams/js/views/teams_tab.js'), + path.resolve(__dirname, '../lms/djangoapps/teams/static/teams/js/views/topic_teams.js'), + path.resolve(__dirname, '../lms/static/js/api_admin/views/catalog_preview.js'), + path.resolve(__dirname, '../lms/static/js/components/card/views/card.js'), + path.resolve(__dirname, '../lms/static/js/components/header/views/header.js'), + path.resolve(__dirname, '../lms/static/js/financial-assistance/views/financial_assistance_form_view.js'), + path.resolve(__dirname, '../lms/static/js/learner_dashboard/views/certificate_list_view.js'), + path.resolve(__dirname, '../lms/static/js/learner_dashboard/views/certificate_status_view.js'), + path.resolve(__dirname, '../lms/static/js/learner_dashboard/views/collection_list_view.js'), + path.resolve(__dirname, '../lms/static/js/learner_dashboard/views/course_card_view.js'), + path.resolve(__dirname, '../lms/static/js/learner_dashboard/views/course_enroll_view.js'), + path.resolve(__dirname, '../lms/static/js/learner_dashboard/views/course_entitlement_view.js'), + path.resolve(__dirname, '../lms/static/js/learner_dashboard/views/expired_notification_view.js'), + path.resolve(__dirname, '../lms/static/js/learner_dashboard/views/explore_new_programs_view.js'), + path.resolve(__dirname, '../lms/static/js/learner_dashboard/views/program_card_view.js'), + path.resolve(__dirname, '../lms/static/js/learner_dashboard/views/program_details_sidebar_view.js'), + path.resolve(__dirname, '../lms/static/js/learner_dashboard/views/program_details_view.js'), + path.resolve(__dirname, '../lms/static/js/learner_dashboard/views/program_header_view.js'), + path.resolve(__dirname, '../lms/static/js/learner_dashboard/views/sidebar_view.js'), + path.resolve(__dirname, '../lms/static/js/learner_dashboard/views/upgrade_message_view.js'), + path.resolve(__dirname, '../lms/static/js/student_account/views/account_section_view.js'), + path.resolve(__dirname, '../lms/static/js/student_account/views/account_settings_fields.js'), + path.resolve(__dirname, '../lms/static/js/student_account/views/account_settings_view.js'), + path.resolve(__dirname, '../lms/static/js/student_account/views/FormView.js'), + path.resolve(__dirname, '../lms/static/js/student_account/views/LoginView.js'), + path.resolve(__dirname, '../lms/static/js/student_account/views/RegisterView.js'), + path.resolve(__dirname, '../lms/static/js/views/fields.js'), + path.resolve(__dirname, '../lms/static/js/views/image_field.js'), + path.resolve(__dirname, '../lms/static/js/views/message_banner.js'), + path.resolve(__dirname, '../openedx/features/course_bookmarks/static/course_bookmarks/js/views/bookmarks_list.js'), + path.resolve(__dirname, '../openedx/features/course_search/static/course_search/js/spec/course_search_spec.js'), + path.resolve( + __dirname, + 'openedx/features/course_search/static/course_search/js/views/course_search_results_view.js' + ), + path.resolve( + __dirname, + 'openedx/features/course_search/static/course_search/js/views/dashboard_search_results_view.js' + ), + path.resolve(__dirname, '../openedx/features/course_search/static/course_search/js/views/search_results_view.js'), + path.resolve(__dirname, '../openedx/features/learner_profile/static/learner_profile/js/views/badge_list_container.js'), + path.resolve(__dirname, '../openedx/features/learner_profile/static/learner_profile/js/views/badge_list_view.js'), + path.resolve(__dirname, '../openedx/features/learner_profile/static/learner_profile/js/views/badge_view.js'), + path.resolve( + __dirname, + 'openedx/features/learner_profile/static/learner_profile/js/views/learner_profile_fields.js' + ), + path.resolve(__dirname, '../openedx/features/learner_profile/static/learner_profile/js/views/section_two_tab.js'), + path.resolve(__dirname, '../openedx/features/learner_profile/static/learner_profile/js/views/share_modal_view.js') + ] +} diff --git a/webpack.common.config.js b/webpack.common.config.js index 1360d5a4fd..e615f050d1 100644 --- a/webpack.common.config.js +++ b/webpack.common.config.js @@ -7,108 +7,7 @@ var webpack = require('webpack'); var BundleTracker = require('webpack-bundle-tracker'); var StringReplace = require('string-replace-webpack-plugin'); -var namespacedRequireFiles = [ - path.resolve(__dirname, 'common/static/common/js/components/views/feedback_notification.js'), - path.resolve(__dirname, 'common/static/common/js/components/views/feedback_prompt.js'), - path.resolve(__dirname, 'common/static/common/js/components/views/feedback.js'), - path.resolve(__dirname, 'common/static/common/js/components/utils/view_utils.js') -]; - -// These files are used by RequireJS as well, so we can't remove -// the instances of "text!some/file.underscore" (which webpack currently -// processes twice). So instead we have webpack dynamically remove the `text!` prefix -// until we can remove RequireJS from the system. -var filesWithTextBangUnderscore = [ - path.resolve(__dirname, 'cms/static/js/certificates/views/certificate_details.js'), - path.resolve(__dirname, 'cms/static/js/certificates/views/certificate_editor.js'), - path.resolve(__dirname, 'cms/static/js/certificates/views/certificate_preview.js'), - path.resolve(__dirname, 'cms/static/js/certificates/views/signatory_details.js'), - path.resolve(__dirname, 'cms/static/js/certificates/views/signatory_editor.js'), - path.resolve(__dirname, 'cms/static/js/views/active_video_upload_list.js'), - path.resolve(__dirname, 'cms/static/js/views/assets.js'), - path.resolve(__dirname, 'cms/static/js/views/course_video_settings.js'), - path.resolve(__dirname, 'cms/static/js/views/edit_chapter.js'), - path.resolve(__dirname, 'cms/static/js/views/experiment_group_edit.js'), - path.resolve(__dirname, 'cms/static/js/views/license.js'), - path.resolve(__dirname, 'cms/static/js/views/modals/move_xblock_modal.js'), - path.resolve(__dirname, 'cms/static/js/views/move_xblock_breadcrumb.js'), - path.resolve(__dirname, 'cms/static/js/views/move_xblock_list.js'), - path.resolve(__dirname, 'cms/static/js/views/paging_header.js'), - path.resolve(__dirname, 'cms/static/js/views/previous_video_upload_list.js'), - path.resolve(__dirname, 'cms/static/js/views/previous_video_upload.js'), - path.resolve(__dirname, 'cms/static/js/views/video_thumbnail.js'), - path.resolve(__dirname, 'cms/static/js/views/video_transcripts.js'), - path.resolve(__dirname, 'common/static/common/js/components/views/feedback.js'), - path.resolve(__dirname, 'common/static/common/js/components/views/paginated_view.js'), - path.resolve(__dirname, 'common/static/common/js/components/views/paging_footer.js'), - path.resolve(__dirname, 'common/static/common/js/components/views/paging_header.js'), - path.resolve(__dirname, 'common/static/common/js/components/views/progress_circle_view.js'), - path.resolve(__dirname, 'common/static/common/js/components/views/search_field.js'), - path.resolve(__dirname, 'common/static/common/js/components/views/tabbed_view.js'), - path.resolve(__dirname, 'lms/djangoapps/discussion/static/discussion/js/views/discussion_board_view.js'), - path.resolve(__dirname, 'lms/djangoapps/discussion/static/discussion/js/views/discussion_fake_breadcrumbs.js'), - path.resolve(__dirname, 'lms/djangoapps/discussion/static/discussion/js/views/discussion_search_view.js'), - path.resolve(__dirname, 'lms/djangoapps/discussion/static/discussion/js/views/discussion_user_profile_view.js'), - path.resolve(__dirname, 'lms/djangoapps/support/static/support/js/views/certificates.js'), - path.resolve(__dirname, 'lms/djangoapps/support/static/support/js/views/enrollment_modal.js'), - path.resolve(__dirname, 'lms/djangoapps/support/static/support/js/views/enrollment.js'), - path.resolve(__dirname, 'lms/djangoapps/support/static/support/js/views/manage_user.js'), - path.resolve(__dirname, 'lms/djangoapps/teams/static/teams/js/views/edit_team_members.js'), - path.resolve(__dirname, 'lms/djangoapps/teams/static/teams/js/views/edit_team.js'), - path.resolve(__dirname, 'lms/djangoapps/teams/static/teams/js/views/instructor_tools.js'), - path.resolve(__dirname, 'lms/djangoapps/teams/static/teams/js/views/team_card.js'), - path.resolve(__dirname, 'lms/djangoapps/teams/static/teams/js/views/team_profile_header_actions.js'), - path.resolve(__dirname, 'lms/djangoapps/teams/static/teams/js/views/team_profile.js'), - path.resolve(__dirname, 'lms/djangoapps/teams/static/teams/js/views/teams_tab.js'), - path.resolve(__dirname, 'lms/djangoapps/teams/static/teams/js/views/topic_teams.js'), - path.resolve(__dirname, 'lms/static/js/api_admin/views/catalog_preview.js'), - path.resolve(__dirname, 'lms/static/js/components/card/views/card.js'), - path.resolve(__dirname, 'lms/static/js/components/header/views/header.js'), - path.resolve(__dirname, 'lms/static/js/financial-assistance/views/financial_assistance_form_view.js'), - path.resolve(__dirname, 'lms/static/js/learner_dashboard/views/certificate_list_view.js'), - path.resolve(__dirname, 'lms/static/js/learner_dashboard/views/certificate_status_view.js'), - path.resolve(__dirname, 'lms/static/js/learner_dashboard/views/collection_list_view.js'), - path.resolve(__dirname, 'lms/static/js/learner_dashboard/views/course_card_view.js'), - path.resolve(__dirname, 'lms/static/js/learner_dashboard/views/course_enroll_view.js'), - path.resolve(__dirname, 'lms/static/js/learner_dashboard/views/course_entitlement_view.js'), - path.resolve(__dirname, 'lms/static/js/learner_dashboard/views/expired_notification_view.js'), - path.resolve(__dirname, 'lms/static/js/learner_dashboard/views/explore_new_programs_view.js'), - path.resolve(__dirname, 'lms/static/js/learner_dashboard/views/program_card_view.js'), - path.resolve(__dirname, 'lms/static/js/learner_dashboard/views/program_details_sidebar_view.js'), - path.resolve(__dirname, 'lms/static/js/learner_dashboard/views/program_details_view.js'), - path.resolve(__dirname, 'lms/static/js/learner_dashboard/views/program_header_view.js'), - path.resolve(__dirname, 'lms/static/js/learner_dashboard/views/sidebar_view.js'), - path.resolve(__dirname, 'lms/static/js/learner_dashboard/views/upgrade_message_view.js'), - path.resolve(__dirname, 'lms/static/js/student_account/views/account_section_view.js'), - path.resolve(__dirname, 'lms/static/js/student_account/views/account_settings_fields.js'), - path.resolve(__dirname, 'lms/static/js/student_account/views/account_settings_view.js'), - path.resolve(__dirname, 'lms/static/js/student_account/views/FormView.js'), - path.resolve(__dirname, 'lms/static/js/student_account/views/LoginView.js'), - path.resolve(__dirname, 'lms/static/js/student_account/views/RegisterView.js'), - path.resolve(__dirname, 'lms/static/js/views/fields.js'), - path.resolve(__dirname, 'lms/static/js/views/image_field.js'), - path.resolve(__dirname, 'lms/static/js/views/message_banner.js'), - path.resolve(__dirname, 'openedx/features/course_bookmarks/static/course_bookmarks/js/views/bookmarks_list.js'), - path.resolve(__dirname, 'openedx/features/course_search/static/course_search/js/spec/course_search_spec.js'), - path.resolve( - __dirname, - 'openedx/features/course_search/static/course_search/js/views/course_search_results_view.js' - ), - path.resolve( - __dirname, - 'openedx/features/course_search/static/course_search/js/views/dashboard_search_results_view.js' - ), - path.resolve(__dirname, 'openedx/features/course_search/static/course_search/js/views/search_results_view.js'), - path.resolve(__dirname, 'openedx/features/learner_profile/static/learner_profile/js/views/badge_list_container.js'), - path.resolve(__dirname, 'openedx/features/learner_profile/static/learner_profile/js/views/badge_list_view.js'), - path.resolve(__dirname, 'openedx/features/learner_profile/static/learner_profile/js/views/badge_view.js'), - path.resolve( - __dirname, - 'openedx/features/learner_profile/static/learner_profile/js/views/learner_profile_fields.js' - ), - path.resolve(__dirname, 'openedx/features/learner_profile/static/learner_profile/js/views/section_two_tab.js'), - path.resolve(__dirname, 'openedx/features/learner_profile/static/learner_profile/js/views/share_modal_view.js') -]; +var files = require('./webpack-config/file-lists.js'); var defineHeader = /\(function ?\(define(, require)?\) ?\{/; var defineFooter = /\}\)\.call\(this, define \|\| RequireJS\.define(, require \|\| RequireJS\.require)?\);/; @@ -122,7 +21,6 @@ module.exports = { CourseOrLibraryListing: './cms/static/js/features_jsx/studio/CourseOrLibraryListing.jsx', 'js/pages/login': './cms/static/js/pages/login.js', 'js/pages/textbooks': './cms/static/js/pages/textbooks.js', - NoTextbooks: './cms/static/js/features_jsx/studio/NoTextbooks.jsx', // LMS SingleSupportForm: './lms/static/support/jsx/single_support_form.jsx', @@ -203,7 +101,7 @@ module.exports = { ], rules: [ { - test: namespacedRequireFiles, + test: files.namespacedRequire, loader: StringReplace.replace( ['babel-loader'], { @@ -220,11 +118,26 @@ module.exports = { } ) }, + { + test: files.textBangUnderscore, + loader: StringReplace.replace( + ['babel-loader'], + { + replacements: [ + { + pattern: /text!(.*\.underscore)/, + replacement: function(match, p1) { return p1; } + } + ] + } + ) + }, { test: /\.(js|jsx)$/, exclude: [ /node_modules/, - namespacedRequireFiles + files.namespacedRequire, + files.textBangUnderscore ], use: 'babel-loader' }, @@ -269,7 +182,6 @@ module.exports = { 'edx-ui-toolkit': 'edx-ui-toolkit/src/', // @TODO: some paths in toolkit are not valid relative paths 'jquery.ui': 'jQuery-File-Upload/js/vendor/jquery.ui.widget.js', jquery: 'jquery/src/jquery', // Use the non-dist form of jQuery for better debugging + optimization - // 'backbone': 'backbone', 'backbone.associations': 'backbone-associations-min', // See sinon/webpack interaction weirdness: